<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugzilla.yoctoproject.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.6"
          urlbase="https://bugzilla.yoctoproject.org/"
          
          maintainer="it-coreprojects-helpdesk@linuxfoundation.org"
>

    <bug>
          <bug_id>9252</bug_id>
          
          <creation_ts>2016-03-14 15:23:11 +0000</creation_ts>
          <short_desc>Build images doesn&apos;t work in Toaster</short_desc>
          <delta_ts>2017-05-10 16:34:56 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>7</classification_id>
          <classification>Build System, Metadata &amp; Runtime</classification>
          <product>Toaster</product>
          <component>toaster</component>
          <version>2.1</version>
          <rep_platform>x86</rep_platform>
          <op_sys>x86_64</op_sys>
          <bug_status>VERIFIED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>Medium+</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>2.3 M2</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Cristina Agurida">cristina-danielax.agurida</reporter>
          <assigned_to name="brian avery">brian.avery</assigned_to>
          <cc>alexandru.c.georgescu</cc>
    
    <cc>belen.barros.pena</cc>
    
    <cc>bluelightning</cc>
    
    <cc>brian.avery</cc>
    
    <cc>david.reyna</cc>
    
    <cc>davidx.lopez.barriba</cc>
    
    <cc>jessica.zhang</cc>
    
    <cc>jose.perez.carranza</cc>
    
    <cc>joshuagloe</cc>
    
    <cc>michael.g.wood</cc>
    
    <cc>stanciux.mihail</cc>
          
          <qa_contact name="David Lopez Barriba">davidx.lopez.barriba</qa_contact>
          <cf_os>---</cf_os>
          <cf_regression_type>Regression (Used to work)</cf_regression_type>
          
          <cf_docchange>No (bug/feature does not impact docs)</cf_docchange>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>59944</commentid>
    <comment_count>0</comment_count>
    <who name="Cristina Agurida">cristina-danielax.agurida</who>
    <bug_when>2016-03-14 15:23:11 +0000</bug_when>
    <thetext>STATUS: Failed
BUILD: 2.1_M3.RC1: 8debfea81e69d038bd2d56314b272cb74f5582ed
ENVIRONMENT: &apos;Ubuntu 14.10 x86_64&apos;

STEPS TO REPRODUCE: 

1. Start up toaster.
2. Create a new project on local branch.
3. Try to build an image (ex: core-image-minimal).

EXPECTED OUTCOME: 

The image is successfully created.

ACTUAL OUTCOME:

Image build process hangs at &quot;0% of tasks complete&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>59945</commentid>
    <comment_count>1</comment_count>
    <who name="Michael Wood">michael.g.wood</who>
    <bug_when>2016-03-14 17:06:12 +0000</bug_when>
    <thetext>This is because we&apos;ve been relying on the xmlrpc server not being a single use instance (i.e. it stays around after a build). Ed fixed an issue where the switch to toggle on and off this single use was accidentally always set to false. Which means Toaster has been relying on some incorrect behaviour of bitbake/xmlrpc.

We need to either get on and merge Ed&apos;s current work to do per project build directories and/or roll a patch to make sure we don&apos;t use anonymous mode.


commit d405f97af32d82b1b82915fa0b7038d4ac79f410
Author: Ed Bartosh &lt;ed.bartosh@linux.intel.com&gt;
Date:   Wed Mar 9 10:07:40 2016 +0200

    bitbake: xmlrpc: fix bug in setting XMLRPCServer.single_use
    
    XMLRPCServer.single_use attribute was always set to False.
    This caused xmlrpc server to keep running after build is done as
    BitBakeServerCommands.removeClient only shuts down server if its
    single_use attribute is set to True.
    
    (Bitbake rev: 0a60b0928a0a746a60d2c2f294ff1903963c7086)
    
    Signed-off-by: Ed Bartosh &lt;ed.bartosh@linux.intel.com&gt;
    Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;

diff --git a/bitbake/lib/bb/server/xmlrpc.py b/bitbake/lib/bb/server/xmlrpc.py
index 1ceca51..7528138 100644
--- a/bitbake/lib/bb/server/xmlrpc.py
+++ b/bitbake/lib/bb/server/xmlrpc.py
@@ -191,8 +191,7 @@ class XMLRPCServer(SimpleXMLRPCServer, BaseImplServer):
         Constructor
         &quot;&quot;&quot;
         BaseImplServer.__init__(self)
-        if (interface[1] == 0):     # anonymous port, not getting reused
-            self.single_use = True
+        self.single_use = interface[1] == 0 # anonymous port, not getting reused
         # Use auto port configuration
         if (interface[1] == -1):
             interface = (interface[0], 0)
@@ -205,7 +204,6 @@ class XMLRPCServer(SimpleXMLRPCServer, BaseImplServer):
         self.commands = BitBakeServerCommands(self)
         self.autoregister_all_functions(self.commands, &quot;&quot;)
         self.interface = interface
-        self.single_use = False
 
     def addcooker(self, cooker):
         BaseImplServer.addcooker(self, cooker)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>60067</commentid>
    <comment_count>2</comment_count>
    <who name="Ed Bartosh">eduard.bartosh</who>
    <bug_when>2016-03-17 09:50:59 +0000</bug_when>
    <thetext>Please, review the fix: https://lists.yoctoproject.org/pipermail/toaster/2016-March/004197.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>60466</commentid>
    <comment_count>3</comment_count>
    <who name="Ed Bartosh">eduard.bartosh</who>
    <bug_when>2016-03-29 08:22:30 +0000</bug_when>
    <thetext>The fix has been merged to master: https://git.yoctoproject.org/cgit/cgit.cgi/poky/commit/?id=b58e5b1fb3bcacbcfce17a748bca5f60c3528b4f</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>60819</commentid>
    <comment_count>4</comment_count>
    <who name="Libertad">libertad.gonzalez.de.la.cruz</who>
    <bug_when>2016-04-05 19:18:23 +0000</bug_when>
    <thetext>Verified in 

2.1_M3.RC2: 21823cb466e79540567ad1a43ae6f93d850e4057

by being able to run the Toaster test suites:

https://bugzilla.yoctoproject.org/tr_show_run.cgi?run_id=5606
https://bugzilla.yoctoproject.org/tr_show_run.cgi?run_id=5607</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>69273</commentid>
    <comment_count>5</comment_count>
      <attachid>3567</attachid>
    <who name="David Lopez Barriba">davidx.lopez.barriba</who>
    <bug_when>2016-12-21 17:03:11 +0000</bug_when>
    <thetext>Created attachment 3567
IMG</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>69276</commentid>
    <comment_count>6</comment_count>
    <who name="David Lopez Barriba">davidx.lopez.barriba</who>
    <bug_when>2016-12-21 17:05:24 +0000</bug_when>
    <thetext>I found this error again in
2.3_M1_rc1: 573c646d4cc62dcd0c230381df4940bdf314d495</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>69277</commentid>
    <comment_count>7</comment_count>
      <attachid>3568</attachid>
    <who name="David Lopez Barriba">davidx.lopez.barriba</who>
    <bug_when>2016-12-21 17:06:57 +0000</bug_when>
    <thetext>Created attachment 3568
Log</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>69280</commentid>
    <comment_count>8</comment_count>
    <who name="Ed Bartosh">eduard.bartosh</who>
    <bug_when>2016-12-21 17:23:37 +0000</bug_when>
    <thetext>resetting to default assignee. This may be caused by recent work Paul did for resident bitbake.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>69488</commentid>
    <comment_count>9</comment_count>
    <who name="brian avery">brian.avery</who>
    <bug_when>2017-01-04 18:59:00 +0000</bug_when>
    <thetext>git bisect says:
7d5c9860de05efc4272256ccefc530113f01d24e is the first bad commit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>69489</commentid>
    <comment_count>10</comment_count>
    <who name="brian avery">brian.avery</who>
    <bug_when>2017-01-04 19:02:25 +0000</bug_when>
    <thetext>Added to CC : 
Joshua L.  as he was curious/
Paul E. for tinfoil2 insight.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>69613</commentid>
    <comment_count>11</comment_count>
    <who name="David Reyna">david.reyna</who>
    <bug_when>2017-01-09 05:52:08 +0000</bug_when>
    <thetext>I have an installation before Paul&apos;s &quot;7d5c9860de05efc4272256ccefc530113f01d24e&quot; commit and an installation after that commit, and have attempted a &quot;quilt-native&quot; with each as per Brian&apos;s advice.

The normal shell log commands are the same for both, and cover upto the build start.

The normal UI logs are the same, except that the &apos;after&apos; log never proceeds past 0% done for the parsing.

The build-specific Toaster log for before works perfectly. The one after immediately shows the reported &quot;unable to open database file&quot;, so the commit from Paul is definitely the cause.

Additionally, I can see of course that the Toaster code base is identical before and after. I am therefore symlinking the two copies of &quot;buildinfohelper.py&quot; so that I can have identical added debugging instrumentation to better find the divergence in the Toaster forward dataflow, while I also investigate backtracking from the reported failure message to the error in creating the database access.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>69819</commentid>
    <comment_count>12</comment_count>
    <who name="brian avery">brian.avery</who>
    <bug_when>2017-01-15 03:17:22 +0000</bug_when>
    <thetext>tinfoil2 changes were clearing toaster_dir. patch sent to bitbake list.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>69862</commentid>
    <comment_count>13</comment_count>
    <who name="brian avery">brian.avery</who>
    <bug_when>2017-01-17 18:16:52 +0000</bug_when>
    <thetext>In master
commit 63f899a950daf1018999455bafa7a2be8b22f164</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>73169</commentid>
    <comment_count>14</comment_count>
    <who name="David Lopez Barriba">davidx.lopez.barriba</who>
    <bug_when>2017-05-10 16:34:56 +0000</bug_when>
    <thetext>Verified in 381897c64069ea43d595380a3ae913bcc79cf7e1</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>3567</attachid>
            <date>2016-12-21 17:03:11 +0000</date>
            <delta_ts>2016-12-21 17:03:11 +0000</delta_ts>
            <desc>IMG</desc>
            <filename>IMG411.png</filename>
            <type>image/png</type>
            <size>45230</size>
            <attacher name="David Lopez Barriba">davidx.lopez.barriba</attacher>
            
              <data encoding="base64">iVBORw0KGgoAAAANSUhEUgAABiIAAAJjCAIAAAAOC542AAAAAXNSR0IArs4c6QAAAARnQU1BAACx
jwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAALBDSURBVHhe7N13dBX1/v97/rlr/e66697l93vO
wa7HAvajR3roKCpNREUBaSqogNhReu+9995b6BBKAiS0BAgQQjohvZJeCAkk3Hf2ZxiH2YWdsBMC
PB/rtXJmPvOZ2TOzZ0c+7zN7Uq1hyw6EEOdTrVq1W7eivvzy4x9+6CoTxnz6aatff+0lE++/33jV
qumq0ThtTKNGdf/44/u33nrt3XffevLJJ9asmaG3b9o0V+8WFna4YcM6NWq8+OKLzzdr1uDKlWOq
3bjZ5OQzsj9PP/1UnTrvPP/8s40b1ysqipD2+PhT7dq1lPbatd+W9sOHN0ijn98O6Va9+r8+/LCZ
Wl2PvV26dOngK6+8/OqrNV555aVp04Y+9thjWVkXpd3eYQYEeLz2Ws3XX39F1ho//k/pn5Z2Xl73
3/9+Thrr168lE8uXT1Gdncxnn7UeOLCvqVFyH0+XRPZKjk48/nj1t99+o0+fbnKurJfqgoMP6Y3/
8z//I+enX78ecnL0VZxP9+6f9e/fU03bO+qhQ/s/8cTjdev+V97QQYP6yUmQRntvhOlI7Z0l0wl3
MnLUY8b8YWrcv3/VU089qaZtHsL8+WPlLD333DN6jh/fKu32LjzjtM1jN8X6ojJuwXSk9k6IfGTU
p17F5oEcPbrpmWeelkWqj3yIZCN5eUEyLb9PTL9hCCGEEEIIeaBT7alX6hNCnI8qM9171CD2+vUw
GXzm5FwyLTVFhrgpKWeNLTLK3bp1gbFFRq3h4UcyMwOMjZKsrIvSfu1aiKndXmzu0o0bly9f9s7N
vct+6pERuGwkOzvQ2FhcHBkTcyIi4mhBQZix3eWpzNNVdWJ91JKrV8/JCb95M9LY6PwbYe8sVVBs
HkK5Y/PY7zFOnhDnD0R+n5h+wxBCCCGEEPJAh3/gElK2uLbMZGp0JllZF9etm/X449VluGtaRKzD
6SJVOZSZCCGEEELIQxb+gUtI2eKqMtOff/5w7NgWU6MzCQ31+uabL7dvX2xqJzbD6SJVOZSZCCGE
EELIQxbtH7gvN2j70ZjVnXeG9vJO63Uso/OO0A9HLn2xbiu9HyFExVVlJkIIocxECCGEEEIeslTr
/kGtWl/83HKBd83Z3vXWHW+xL7GV59X6exOabQpc5HOux3e9nn7VvA4hj3JkWAgArmL6DUMIIYQQ
QsgDnWoR39ccNuiv70f+tmHJx59O+fOZ9cEvbI/5/zZdfna27w/rjkdFHVg8patpHUIIIYSQqpAn
a9Z9skYd62mXp4I2Xr7NOnXUNeuVttesZ26/T6nQd4fc39i7IF31pt/TdrR1q8oHgRBCHoVUC+1c
M+6XVxJG14ie/UK9gZOfmb7j/1p28f9eHPC/k068PWhHVtrxnLgpnTu/ZVqNEEIIIaQy8/jzb1R/
7jWJjBtViww+/1uv6bv1mz79al3jtL6Kq3IvG3/ipf8+8eI7NgfJ5dusU0dds17Nt92k/ZW33e69
0qSfeYlMP/Hi22UdtFfQCVQx7N7rlt17x3jIaumTL9fSW4ztKo8///oTL5TtoKo//7q+ujH6xVnu
3PV47z36sf/9UapRR7U8/u839W5Oxt4FWY433fimqMiOlfviefLl2o8/+8ob7zSQdV94Q97ce/0g
EEIIcTLVYnvXiP2pZsLwmtHjXgz5pfmckf3+MenYv4Z7PvHH3id6r1m8y/1W2sQpY542rUYIIYQQ
Uml5/LnXN23ZduKU3/GTvm/8100Nj//19Ms3b968devW27UbGadlXGpc995T7o0/8dJ/e/f5eeDQ
UbUbfWBdOCjfZp056sdfeGv2vEXSvmzFmnIUDoyRkf+uPR5y5tXJ37l73/BR45+vWbaiTAWdQIm+
e7Jvh4/6bHHfIZ1ffu3dJ1+ubVzascvXxkqT8aCOnTi1z+PgqLGTnq/5jpMHVf351w96HlGrm/Jm
rUb3Umm66/Hee4xn7I13G8reygvVbdRS7f+GTe5lvWDsXZBlfdONb4qeeo0/KN/FIxfAh20/T0pO
kRXFN9/9KOfW1IcQQkgFpVp0j5ox/WrG/1UzacZLY3t/UvOXTc/8tvtfP2z+fzsv+r/bT92yZ1lJ
+vzjG98wrUYIIYQQUjmRYXCj5h+p4aIYPmq85YYapwouksf//ZZENiLjZxnKGkebdyy6Pbp+4sV3
tJ4v/EfdFyOzy1euXblmQ823Sm8UuqOPZU/0yMYt7a+rzVZ/puaFgEDZq6969K7+/Oume2qM+yyb
unPf6ql9U7NPvPRu6QZfelemjTtjPuqa9R5/4S159erPv2YqM8lLaztmOC5nIoeQmJQsm8rMykpO
SS0uLpZpX78zT/679B+Haifv1wmU6LtXWFh440bpqRDS0rhFa7W6Wtqn/+/G911vj4qOOXch4Pr1
6zK9dfsu2R+9j4Oo1fPzr0lKX+/WrYKCAjX737pNZSOmk3z7YNXNVn9X6KzfFHvHa/N02Tz5d41+
7GLytNmPv/Af2cjiZatUS2hYePVnX1E9rd/HJ2vUVi+qRx2CzQvSdHHaOwl69B2Tt1KdTEmT99tI
f+PFo72uvUvu9vmp/uyr23fuka1t3Oz+Wafub9Zq+tTf+2A4opdLP1nSrtYq/fhYNq5mCSGElC/V
rnxVM/q7moGdXhn+Ud23vvzt/+my+P/pvPD/tJvyf1qO/D/1+xdlrSnJGLJnaYtneBA4IYQQQu5H
ZOw3Z95iNQaWn0HBIWok7GBM+/e6/35r/qJli5aubNyi9bKVa2Xk2euHn9ToVF/UsNmHy1asWbt+
s7Q/8fzrP/8+cMMmd+k5buK0l19796kadfWeNd6qJ6NT6dP/1z/Xb9q6beeeYSPHPf2iNtZ9/PnX
fuj36+p1Gz32H5LOtRq0GDth6tWrabJXHgc8peWzznfcU6Pv80ftPr9z3+o9/2ot6S95psZ/n3jp
3Z69f5Tpr77+4UlLvUnfmTuOukadl16rNWvuwr0eB/4YOEydMVVmklH0p190W7N+k+zGFvcdclwv
vaGVe+4affDfp//v/3qmRtsOnWRaNH2/rQzX7+8JlBh378nnX5EzGRoWIbMhoWGPP/eqcanNMpM6
qF//GCzTqalX//VMTb2P48gWZMVnXnxDVhTyuv96usbjz9a0PnY5+QOHjpKDVSd/8LDRz9UoLbLY
eFNeq23zeG2eLptXr3EP7UU/9uvXr6ekpj7179f+/crbOTm5BQUF0qiXmazfR7n2mn74ibyiMW06
dNEvA9MFaZx+4oW3bZ4EmztW+qY8/bKcT4kqbOnbl2O0ecmZzs8TL749eNiY+IRE2dpR7+PS/413
G9k6onc6df9elv7+51B5FVlRPj6Llq6q3ehDKk2EEHIvqRb+ec2oHjX93ntlXZf6jzfr90zb3z/s
1fsf7w/4f9/9/vnanQtC37sZ88rFNc+bViOEEEIIqZw88dwr6ssv7T/rkpGRKRPNP2gn4097Y1pj
mUlvT0tLvxx5RU3LoFQG+foi2XhJSUlcfIK0HPQ8Ii3yKrGx8TIhI9Uab9zxQtWfe1WGyjIdGhZx
5uw5mTh9xv/Jf78u7Xs9DshsYWFhcEiojNu7f9vn3IUAtWJ+/rXsnJyhI8cZ70ZxsG8yBpZp8XyN
0tsrZCQs07PnLXr8hbeMO2OcfvzZV+XlZDozK0uOSH7KdGmZ6fk3GrdoLd2kZf9BL9nnoqKiug3f
Mw6kS282eeldFePZkxgH/9WfffW/9ZrKtLAUVu7DCXz8hf8Yd9W4e09YnmokOyazQi4S01Lrg1qx
al2/nwf4HDsh0/Lqjz//ut5H4uC0WFLPWGaq/uwrNo9dXksmzvqfl5MfHRMr7XL41Z97zeabYn28
1Z+tafN0WZ98eSF935x5Q9dt2CI/f+j3619DRsrE2vWb5acqM8l7YeNYXq/dpUdv2SsVaRS//znU
+Obam7Z5Eh5/7o6zre/Ypi3bBg4dJflj4HDj59S4TeMlZ31+nnjuVa8j3urutoKCAtnbeo3et/nu
vPTqu1HRMbKpDh27zpq7UNrdt+827RghhJCyplpgm5qXv6wZ0blm9Pc1r/z2avTAmh7fvtLukw7/
+2qn4X+5XTvxdL7v/yzpU8O0GiGEEEJIJeTJl2t17NJTDQtlILp63UaZXrhkxeP/tltwMY6r9fYB
g4b/65ka8lOmL0dekbG0vkiGtc++9GbNN+t8+mV3mc3IzKrxeq3Hn33l+ElfmZ06Y65x4zIclYnw
iMgnny/dwlHv4zLb64efVHt+/rX6jVvKxp+r8Z836773r6dr6N+BkmljjcnxvullpmdefMPJMtOn
X3STiazs7Jpv1n7q+VcvBgbJ7LIVa6o/99rXvfvJ9J59B96t3/TxZ2u++Oo7z7/eQL+XRE7XO/Xf
6/5tH5W367UwnkB98H/uQsBejwNqWob3z738H/3VK+0EPv7Cf0y7qu/e7UJSvadfeF1mRbevv6/+
TI07l5oPSldYVNS153fGPo5PiyV3lJnsHbu8fS+/VksaG7do/fGnndV5eL7GWzbfFPPx/vtNe6fL
+uTrt6c5+YZ+1ql7enqG/7kLsvG4uPhu3/wgjarMZO9Yqj//hlyo8tJz5y+RFln3xdf+a3xz7U0/
WaO2zZNgvKXOxptSWCgnweY29aO2e36eqaGqh/1//VM2Yv/defP9Vp/Iu3/1alpxcfGVqOgXXr3j
EfKEEELKkWq+TWoGf1wzsnPNyG41l7//5uev1Hn+xdbVX/z4pRdbBK16KWPr02HjX+jV+O//6BJC
CCGEVFoef/6Nrdt3yZhQBuQymB8+arxMy5jwyX+/andMa6vMVLfhe0+8XEt+yrS0PPHc32UmGfrK
MPiJF/4zZPgYmfX2OVH9uddkdsLk6TK7z+OgceOqj8mM2fNVuwxfqz/3quWl6z1Vs271Z1/Vqwbq
yUrGONg3U5lJPTrHcZlJVaksO/CaXpkqvZvp32++9na9hMQkmRX5+dd2791f442/qxJPvPTf7/r+
opYK08OS9cF/0Y0b169fl2lZ3a3ph8a7ySrtBFrvqqmQJLtRx62FWtru005WRSjzQY0ZP6XJe23+
GDhMpgsLC994p4H+AG/Hp8WSO8pM9o792Zff2n/Qq6SkxNJRU79xS5tvivl4X3zb3ukynXxjZcTx
nuvH3rZDp5lzFqg+I8dOlFeUidIy0zM17R3L45a/rzdl+hyZvRgY9PJrtZ6qUdfeBWmcfq7GOzZP
gvGWOn3H5i1cKjsj6dT12ydfftfmNk2XnEnp+Xmmpl5mkt8hDo7o8X+/ru5jEh279JRX1HeJEEJI
+VJtc62ap5tZKk2dakb1rLn9szf7NqgzpXWtuME10ya9HDOgxq7PXv3wXfMDFwkhhBBCKjw1673w
yjvqqTEmXXt+Z29Ma7PM1Lr9FzLalJ8ynZWdrW7KMK4iQ/E+/X+X2aDgEBmjynB06fLVMrtm/SZj
zx/6/SoTIaFhaiSs0qhFG9V+JSq6+rM1ZVOPv/CfJ1+uVf32F9lkb6s//4bpgS8O9u35Gm/JtHjl
rTr/euaVQ16l3/dxXGb6vl9pZSE0LEJWl9d1375bZlWZ6cmX3n32pbc6d+s1ZvwU6SDtYydMtfwJ
/9LdkL2q2+SjX/8YrGL6G2fGSo28nMzKrqoOxlevnBNYWoy7c1eNu1f92VfkvO3zOCizGRmZz7z0
5h1Ln3u1eunD0V9/8uXSL7IZ2l976vlX1e516NhVf/aT49NiyR1lJnvH/tNvf8nE+QsX5dhrvF5L
fZPLrekHT7z4jvWbIjt2x/G++Lbt0/VeW9PJN+6Yk29o2w6d3qnTWDYin6+ab9SSzUqjKjPZOxY5
w6PGTlLd5Mp8/IU3jdVG2RN70/ZOgs0dk1eX61wuWlXxsbdNdcnZOz/ydv9dZvr3m/aOSC7mmm/W
SUhMUiUwryPej2tVTkIIIeVPtZavvnvg7Zq+TWoGtqkZ/nnNyC41o3rUiP2uRnz/GtG9agR2fPnP
Bk49UJAQQgghxLWRofjPvw+U4V9sbPwfA4ep7D/oJS279+53MP7Ut6C3XwgIHDBouLpVZPPW7TK8
NK9Ss+7r7zTIys6WlrnzlwweNjovL1+mO3bpaez52jv1MzKziouLR46d+MnnX8kg9qDnkY8//+rV
t+ulp2dInx279vb7ecCM2fM/7fS1jHXVg2N8jp+cPG12/aatjONqR/v2TM3klFSZ3b5zz+Jlq9Tf
d3NcZpKdv3at9A+fLVyyYtzEaYWFhTKtns3Uqn3n+YuX9/i278efdvbYf0jax0+a/sQL/9H3RPZK
TrWKcQ8lxsG/jOqNi+7LCXzi5VrGXdV3L/BS8IlTfrJlmb5x4+a33/eXvTUulVdRadX+S739wKHD
c+YtVl+hkrP32tv19buZJA5OiyV3lJnsHftvA4bIRMTlK5279Vq5ZkNpb0uFpVX7TtZvSvVnX7nz
eD+yd7rMJ//OfXPmDW3boZNcAx06dlUTf5eZnn3F3rHI3sqEkAOR3ZN80LajvQvSOG3vJBj3zd6V
Zm+b6pKzd36qP/t3memJF9+2d0TyonINyLSsfuToMTXx+O2/8EgIIaR8qSa/31s+98rmV2scq1/T
/72agW1rhnxSM+yzmhc/qbG1UY32L9V43Ooeb0IIIYSQSkj151476Xtaxn5Tps+p/vzrMmaWEeAH
rT+VlsKioppv1LI7/ry9Bb19/qJlRTduyMS5CwFv/NdNBqjWqzz50rvtP+sig2FpFJlZWQMGDZdX
1Hv+p1bDJ198p3X7L4KCQ1QfcSkopGGzVrJvH7X7XD0RSchrfdapuzS2av+FbFCt/uVX3xi/kuNg
32SY3fenP+QYpTEkNEw9G9txmemJF97+ru8vqtIUFR2zZ1/pKrfLTF+oJ4Irx0/6vvKf0r/4pu+J
g9gb/Evu+wmU6LtXUlJSUFAQFxe/a4/Hh20/U/dq6UuNun/bR/+qnZKVne3rd+bTL7vL/hs3frfc
UWaSV7Rx7M+/+cKr75z1Py8tsofyduTnl75BljKTjTflyZdqmY73iX//x+bpsj75TkY/J207dHry
5VpaXnrXWGay+T5Wf+7VEWMmqhbdHwOH2bsgjdP2TsK9lpksl5zN82O8m0muIntHNGzkOJmVk//E
86+98Y5bWlq6XHgftvn0yZdr6ztACCGkrKkm/8io/sLbzz3xQu+nn1/y0ou7/vPyzndfWvL280Ne
e77Rc//+53NvlOk/XYQQQgghLkz1516TseXjxltvXi79no5E/g2jJtS/VYzTeqRFH5e+9Op/5Wf1
Z1/V71ixXsXyRa1XXnmrzjt1Gpd+e+vFd2TEW/PN2rKF4uLip194/alX6qk+L7/2bt2G773wytuy
QTVaLv021rOvyqtI+3Mvv6UKIpbG0udAlb6Q1WNfVPvj/37Tet/kpf9d8z+1GzR//LlXH3++9C+L
Pf6CdpOFtjWro5Zdffrfr9dxa/Hk869pq1j+yL1lH2q+9a5bgyYta75RS06pkzUmFRn/y6ZMNSYV
46urVPIJlKjds6SGTD/+/Buyiq2lWp6w1JLuaH+mhpwT2St9Ladz+wq0vKL1sZf2qVnv8ede+2/d
Jq/+p668HerbmnK89t4U6+O1d7q0PoaT72TUsZuO98mXSp+CJC+kzdo6lidefFu9qB7VrqatL8i/
p+2cBOljjNox6yvt7+3YOmp750f96tDeBYdHVHrypU/Nuv/Szgw1JkIIuadUU/8jv6wfl/+6PP/W
P559/V/PvvbP596sbvv2YEIIIYSQByYyaPz79gcZ2xtGp45Ss67q+cRL7/bs1S8pOUW24LH/0B1/
8L5mvdJ/KVnXa1T77b/j5mxkLet90zZ1Z+PdYm8V2b7tHa6IVP4JrDq5fezGlLZYv79lelPsna4K
ja1jKXfsnQTXxMnz49IjIoQQYjNamYkQQggh5OHLEy/8Z9LUmZOnzX75zQblGKI/+XKtjz/vunzV
2sHDRj9X4+0HuPZxn8IJJIQQQh61UGYihBBCyMOcJ174T+l37sp7G8iTL9d6/N9vPvEiJZJyhhNI
CCGEPFKhzEQIIYQQQgghhBBCXJBqGRlp5U56+tW0tNTU1OTk5KSk5MSExPjExPj4+FhCHEQuErlU
5IKRy0YuHrmE5EIyXVqEEEIIIYQQQgh54FJNRvjlSFpaakpKUmJSwuXIiHPnA3xO+B466u3heXTP
Qa+9hDiMXCRyqcgFI5eNXDxyCcmFJJeTqjcRQgghhBBCCCHkAU01GduXKVevpiQnJ8bHxwYEBnp5
++w/7O1/PuBKdExySkp2dnZ+fl5h4XVCHEQuErlU5IKRy0YuHrmE5EKSy0kuKrm05AIzXXKEEEII
IYQQQgh5IFJNRvXOJzU1OSEh4VJI8GGfY0ePnYyNiysouHb9eoH8vHYt3yKPECeSLxeMunjk0omN
j5PLSS4qubTkApPLzHThEUIIIYQQQgghpOqn2tWrMqR3KikpiQkJ8X5nz+7yOHQ5KsZSW6KuRFwQ
uZCuXy+Qi0ouLd/TZ+Uyk4vNdPkRQgghhBBCCCGkiqdaamqyM0lJSYqPjz/ld2bfQa+09KuWm5fM
xQJC7iVyUcmlJReYXGZyscklZ7oICSGEEEIIIYQQUpVTTQbzziQhIe58QMCOvQevpqdzExOpoMil
JReYXGZyscklZ7oICSGEEEIIIYQQUpVTLSUl8a5JSoqPibmy75BnZFQMNSZSoZELLCo2Ri42ueTk
wjNdioQQQgghhBBCCKmyqZacnHDXxMXFHj91yvPo8fxS5roAIa5OvvfxU8dOnpALz3QpEkIIIYQQ
QgghpMqmWlJSvOMkJMRGRoZvcN+RlJRsVQ4gpEKSnJIkl9zly2Fy+ZkuSEIIIYQQQgghhFTNVEtM
jHec2NjoU36nDx72zsvLNdUCTDl79sz48eNCQ0OMjZ06ddqwYb31tAtT7s1GRV1JTU0xNap8+mkH
d/etpkYHceYwY2Nj3nzzzcTEBFN7WbNu3Vo5z5KZM2d6eOwzLb1rKuhdcG3kYpNLTi48ufxMF6SD
fDl8Z+3eayUyYVpECCGEEEIIIYSQik61xMQ4x4mKjty1d39waKipEGCd7t27//Of/xw4cKCxsXnz
5kuWLLGedmEmTpx45MhhU6MzadKkyYoVy02NKm5ubqtXrzY1OohxH+wdZlRU1GOPPRYXF2tqL2s+
+aS97N4vv/zSq1ev55577rPPPrtrBdCYcp+uSk5waNiOvfvk8jNdkA5Su/daj3OJEpkwLSKEEEII
IYQQQkhFp1pCQqyDxMfHhIaGrN7knpaWZqoCmJKYmFC9evVJkybVqFEjOztLb3emzBQTE52WdjU+
Ps7T81BY2N/1LNWelJQo7bGxMdKSlZV5+rTfmTOnjS8hi6SbPpuTk+3re+rYMR/TnUq5uTmXLgV6
enpevhwhswkJ8Q0aNJg5c4bMqo0bo8pM1rsUFRWVmZmhpuWFZF1V4jHug+kw1f6HhISYykyyM4cO
HfTz8zUeizP55JP2f/zxu5qWsyHbPHzYS6Zde7pcGDnG2rVry0+bs/Yil5xceHL5yUVouiztxVhm
Mi0ihBBCCCGEEEJIRaeajOEdJCbmyik/350eB7OzM01VAFPmzZvbqFGj7Oysl19+efv2bXq7M2Um
Nze3b775+q233vrggw+eeOKJqVOn6O3ffffdK6+80rhx461bt548efKNN96Qxnr16r799tv+/mdV
N+NmL14M+O9//1u7dm3Z1EsvvbRnzx7VHhh4sWHDhm+++Wbr1q1r1qyxbZv78OHDnnzySXnRJk2a
yKuobnrs7dKrr766f7+Hmr58OeKxxx5LSkqUaXuH6enp+eyzz8pL1KpVq3//H1WZKTc356uvushx
ffzxx7JX7du3V52djLHMlJOT/Y9//GP9+nUy7cLT5drI/shLyM74+flKZEJmpdHUzRS55OTCk8tP
LkLTZWkvxjKTaREhhBBCCCGEEEIqOtXi4qIdJCoqct/Bg8dP+uXm5piqAKY0adJk5syZMjFgwIBO
nTrp7fbqL8a4ubm9/fbb6qFFXl5e//znP4ODg1V77dq1ExLiZTonJ7tOnTqDBw9Wq/Tv379x48bq
TiJ9szLbokWLkSNHqj7bt2+rUaNGWtpVaW/WrGmfPn3UUcimkpOTZMLxl+Zs7lKZykzycrL/48eP
k2nZhx49eqgy09mzZ5566in9liK1M87HWGZavHjx//zP/1y4cF6mXXW61KwLc+VK5Oeff16/fv03
LGRCZqXR1M2UvLwcufDk8pOL0HRZGvPFsB21Lc9jUtHLTHqkg2kVQgghhBBCCCGEVETuUma6HBm+
cdv2gMBLphKAKWfPnvnnP/8ZExMt02fOnNanJTbrL6a4ublNmDBen23SpMm8eXNVu34b0cWLAY89
9pj+7bbg4GCZjYgIl2l9syEhIdLo5eV1+rSfyrPPPnv8+LHg4CBpj4q6otbV47jMZHOXylRmCgi4
IB30L6MdO+Yjs3FxsbLiv/71r4kTJ166FKgWmZKZmSHdVFRtyJhPPmkvx/X222+//PLLTz311KxZ
s1S7q06XWsW10StNTtaYVAIvBcnlJxeh6bI0pnbvtUcDkw8FJHkGJKkak8o+/8S9ZxP3nS0tOZlW
IYQQQgghhBBCSEWkWmxslL3ExFwJDQ1avHpdfPxdnlo9YMAfr7zyyujbnnrqqRkzpqtFNusvpri5
uS1d+nf7559/PmLECNW+atUq1ejp6fnPf/5TTUsyMzMee+yxEyeOy7S+WS8vr//93//95JP2xvj4
eKvbkfR19TguM9ncpTKVmWSfn376adUoCQsLlf5xlmcz7du3t0OHT5588sm33/7Pxo0b9D4qGzas
l3OoWN/rJAf19dc9T5/2Cwq6lJX195cZXXW69LVcGFVmamzhfJkpLj5WLj+5COVSNF2cemr3Xrvn
bMI8j4i5+yJm7wmfuTt8vHvYmM2hIzaGDFsfsuJwaR3KtAohhBBCCCGEEEIqItVkAG8vUVGX/c+d
Xb52U3q6oy9SZWdnvfjii127dv3jj99VPvvss/r166mlNusvpri5uelf3ZLUr19/0aKFql3/c2/q
jiS9PKFuFFKz+mZVHScy8rLqo0e1G5/krdKsWdPly5eZGlXs7dK7776rP3nK1/eUbNZBmSko6JJ0
UN9ik3h5ecmsKjOpZGVlzpkz55///GdKSrLeeNd8YvjSnDGuOl0uj7yuqjHJT31C3zcHychIk8tP
LkK5FE0Xp54vhm2vbfiK3Hj3MImxRTqYViGEEEIIIYQQQkhFpFpMTKS9REaGex09smPvPuMtM9bZ
smXLM888k5GRrrdER0f94x//OHHihEzbrL+Y4ubm9uqrr6p6h7v71scff1zVIIx1k7y83CZNmvTv
/6NM5ORkd+/e/cMPP1SLjJtt06ZN165dr15NVascOnRQOst0q1YfdenSOT299O/lJScnqS/Qffnl
l3/++afNx07Z26XOnTup54XLOenWrdtjDstMsgONGzceMOAP1f/TTzuoMlNYWGhg4EXV2dv7qJyr
Mv2VN2fKTPd4urZv36bu3pLIgffp00evCkm78RHvzqRfv356aUmiKk3SaOpmnezsDLn85CKUS9F0
cdpMbcuzmVSZybSIEEIIIYQQQgghFZ1q0dGX7SU8PHjL9p1Hj5/IyystPdjL559/3qtXL1Nj+/bt
+/fvLxM26y+muLm5/fLLL2+++eY777zz5JNPLlu2VG/X6yaSCxfON2jQ4OWXX37hhReaNGkSHByk
2o2bjYq6Ivvz9NNP16pV67nnnmvYsKH6W/4REeGtW7eW9nfffVfaPTz2SaO399HatWv/61//atmy
pVpdj71dOnv2TM2aNV955ZWaNWtMmDDBcZlJ4ufn++qrr7722muy1qhRo1SZSV73+eefl8Z69erK
xMKFC1RnJ+NMmUlyL6dr9OjR0qL6+Pv7y27LTzUr7bJUTTuZK1ci+/XrpxeqTLMOkpeXe/T4SbkI
5VI0XZw2YywzmRYRQgghhBBCCCGkolMtKuqyzVy5EhEScmnhijXqudEVGlUfyczMuHDh/F3/7FpU
1JWoqChjS8OGDdetW2tsSU1NCQi4oP5OnDFJSYkXLwY4/8fUbO5SdnbWpUuBzn/NTfpbbyQ3Nyc0
NCQw8KLxLrCKyL2crqqQ8PBwuQjlUpQL0nSJWkeVmSQyYVpECCGEEEIIIYSQik41Gb3bTERE6Elf
30Ur1zl+MJNLYroNx/kkJSWuWLG8evXqFy8GmBYR6zyIpys9PU0uQrkU5YI0XaLW6ThUe06TTJgW
EUIIIYQQQgghpKJT7cqVcOtERoaFhl7aunPXvoOeeXk2Hl3k2vz226+enodMjc7k/PlzPXr02LRp
o6md2MyDeLpyc3PkIty2e1dYWLDpKiWEEEIIIYQQQkiVSrXIyDDrRESEBAScmzJnYUxMtGnYT0gl
JyomevLsBYGB5+WyNF2ohBBCCCGEEEIIqTqpdvlyqCkymA8Ovrhpm/uWHbsr4VYmQhxHLsJNO3bK
BSmXpVycpsuVEEIIIYQQQgghVSTVIiJCjQkPDwkJCdp/6NCkWQuT7vY0bkIqJ0nJiXJBymUpF6dc
oqaLlhBCCCGEEEIIIVUh1SIiZNCuJSwsKCgo4JCX55gpsy8EXjIN9Qm5jwkIDJLLUi5OuUTlQjVe
t4QQQgghhBBCCKkKqSYj9tDQSyEhgZcuXTh37vSmrdvGTZ93PjDo2rV80zifkPsYuSDlspSLUy5R
uVDlcpWLVi5duYDDw4MJIYQQQgghhBBy31PN3//08RM++w54rNu4ed7Sleu37khMTqHGRKpg5LJM
TE5eu3WHXKhyucpFK5euXMCBgefVLU6EEEIIIYQQQgi5j6m2YMHcNWtWenkdCg8PzcrKuH79OjUm
UmUjF6dconKhyuXq5XVQLl25gAkhhBBCCCGEEFIVUk0G7RYFBQXXKDCRByJyocrlKhetunaLigpv
3LhRWHidEEIIIYQQQggh9zHVTAN4QgghhBBCCCGEEELKEcpMhBBCCCGEEEIIIcQFocxECCGEEEII
IYQQQlwQp8pM2dlZERGhp04dO3hwz44dm7dsWSeRCZn19T0mi6SDaRVCCCGEEEIIIYQQ8kjlLmWm
1NTkU6d8tm3b4OnpcelSQGJifFZWVr6FTMisNHp67pMO0k06m1YnhBBCCCGEEEIIIY9I7JaZcnKy
z5713bZtg7+/X1ZWluWvetmNdJBuls6+ubnZpk0RQgghhBBCCCGEkIc+tstMqanJHh47jx8/kpGR
bqooOUhGRpqPj9ehQ3tlwrRBQgghhBBCCCGEEPJwx0aZKTExfufOzRcvnjNVkZxMQID/tm0bt2xZ
u3nzGkIIIYQQQggh5KHPrl1bo6IiTYNrlaioy7LU1J+QhzXmMlNqasqOHZsjI8NNxaMyRVbfvdu9
oODaLQAAAAAAHnapqUm7d281ja9Vdu3aKgNtrR/wsLujzJSTk+3hsbPc9zEZExDgf+jQvuLiYu11
AAAAAAB4eG3evMY4vtYj7VoP4BFwR5np7FnfY8cOmwpGNlNYeN3UYh3ZVGDgOe11AAAAAAB4eFFm
AsTfZabU1ORt2zY488zvwsLrmzdv2rbN3XGxKSMjbceOTRXx1blLly5pUwAAAAAA3E0ljCIpMwHi
7zLTqVM+/v5+plKRdQoLr0+ZMrmxxbJlyxxXmvz9fc+cOaW9lB0lJSUJCQmHDx9eZyETMiuN2mJb
KDMBAAAAAJxX1cpM0dHRu3fvljG1kAmZ1RYADzitzJSdnbVt24asrCxTnciUwsLrU6dO+eijj3r0
6PHVV181bdrU1MGUrKxM2eyNG0Xaq1nJzc1du3btsWPHUlNTr1vIhI+PjzTKIq2TFcpMAAAAAADn
3eMo8tS5IG3KPufLTKdPn15ksW7dulWrVqlpadQWAw8yrcwUERHq6elhKhKZoteYvvnmm759+3z1
1VcbN250fDeTxNNzX0zMFe3V7pSTk7N27dqrV69q8wbSuGbNGnuVJpu/IGR/3N3dtRlXMG7w888/
37Nnj5out+Tk5Ly8PG3GyuXLlw8ePOjh4XH+/PmbN29qrbdupaSkHDp0aN++feHh4VqTRVnbxcWL
FzMyMuSsFhYWak0uUhHbtCZvR3BwsDZjoY5Imykv6806yeZRm3YpMjLyxIkTpvdd9dm0aVNYWJjW
5ATjftrb5/z8/Pnz5xcUFGjzdrjkvAEAAAAPECfLTNcKrh8+eW7pxj3zVm9ft+PQkVPn868VnPS/
JLNaD/ucLDNFR0cvWrRIxsJJSUmqRSbWrVsnjc7c0xQSEiLDve3bt3t5eUVERGitFUCG5PJa2gzg
NK3MdOqUz6VLAaYKkTGmGlO3bt1kkFxUVGjqZp3AwAunT5/QXs2gpKRk/fr16enp2vytWzt27Ni5
c6c2c+tWWlraxo0bbX57zuYviPfff3/VqlXajCsYN9ioUSM5XjVdbs2aNZPfHdrMnXx9fadPn37i
xAl/f//Fixdv3rxZtScmJk6ZMuXQoUOnTp2aMWOGXt4ua7soKiqaOnXqtWvXVqxYcfHiRa3VRSpi
m9ZOnjwZFxenzRiOSJsvL9NmnWd91KZdys7Onj179oQJE5KTk1WL0PssW7asTP+PinE/5cq8cOGC
mjbKy8uTl3N8Tlx13gAAAIAHiDP/9o5JSF6yYfecle7GzFu9TU1onexzssy0e/fuRYsWGccIIiUl
RRplkTZvx549eyZPnuzl5SVDyL17986aNUtbUAHmz59vc9ABOKaVmQ4e3JOYGGeqEOkx1pj69//x
u+++2759W1FRobSbYlpRkpAQd+jQXu3VDOLj42XYrM1Y7LTQZixOnDiRkJCgzRg4U2aSnbt48WJg
YKAMqrUmi+Li4suXLx8/fty45djYWGkJDQ2VpVqTrTJTdna27JKpJGHvheRVfHx8AgICVHtGRkbD
hg3nzZsnr2t9A9fSpUtPndIeYpWUlDRhwoT8/HyZlhfV76KSo54+ffqNGzfK0S7CwsLWrl1bUFCw
bNmy06dP5+TkqJcQN2/elN9x8nvNePgiKysrJiZG9tZU7JNjiY6OllVUf5vblFXkQORgjff7yFI5
G9JfNqt6ylI5n5mZmdJfVlcvlJeXp9/PpdrVtFpdTQt1RDKh2q9duyablX1WS4X1y9k8UtNmbe65
kHY5cNmU2h+bR63vkrJx40Y/Pz9TmUnvo8pM1rvtzOGbykzqGOU0mspMpndKMe0kAAAA8CiwOYo0
yi+4vnjdzlnLt3gc9c3MLv1iTU5u/sot+6RFRXVzwMky0/Lly23efyCNskibsUVGKCNGjIiMjNTm
LeMFbcoy1E2UUX1cnGkgI8OEqKio1NRUY2cZOKixkiySaWmRpWlpaTIrw17VR5WZpI+MKYwDFsAx
rcy0Y8em7GzbD2YqvLPG9NNP/X/44YeOHTu2aNHCzc2tvkWdOnW6dOlis8wkl6NsXHs1g0OHDsmF
rs3YkZKS4unpqc0Y2PwFYawKnTt37s0332zUqJHs23//+9+gIO1rtBEREY0bN37rrbfatWv3yiuv
7N1bWv/q27fv22+/3b59+//85z/NmzfXv0xkKjP9/PPPsilpfOKJJ5YsWaLabb6QfLy7d+/+6quv
dujQQV7u008/lcbRo0c/+eST8hLNmjWTV5SWkJAQtQNCfqF4e3urafkMT5kyRX41yOd88uTJ+nff
pGXChAkxMTFlbVeze/bs8fPzO3r06NSpU+X3xYoVK1RBKikpad68ecuWLZODWrBggf6myFKZ3bBh
g+osv1ykUV5i27Ztc+bMkXb5Dbhx40ZptN5menr6woULFy9evGbNmlmzZum/B+VVpIOsLj3DwsJk
32bMmLFy5Urp6eHhoddH5s6dK7/d1Co5OTnSrl7dVFtRRyQTstldu3bJDsjLyanz9fVVHUwvZ+9I
jZu1t+fSLscrL7F+/frZs2fLSbY+aqHvkrh48eKmTZtU3cdYZrrrbjtz+MZpOY3Tp0+X3Vi0aJF+
Gm2+U4pxJwEAAIBHxF3LTIeOnZ6xdOO+w3/fDHHs9AVp0aO12nfvZSYZI2gztsi/84cPHx4aGqrN
G1y9elXGLzJUWbp06aRJk/Qv023fvl2NuWTIICMd/f+QlmGILJJhiIyMgoOD09LSpEUNK2RQqb4r
Jy07d+6cOXOmjI9kPMsgAk7Sykxbt67Lz883VYgkhYXX165d27Jly2+//fbHH/v99FN/iUx8//33
X3/9dc/bunfv3qJFC5tlJtmsbFx7NYPVq1frN9oopi/NiaKiIhmBazMGjstMN2/erFu37ogRI1T7
r7/+2rRpUxl1C9nJ/v37qzs7pJsq0+q3NUl7t27dRo0apWZNZabGjRurZ0XJTj7zzDPS2d4Lye49
9dRT+gdYvxvF9KU5f39//ehSU1Pl87x79+6DBw/K7wX1qZaXM1Uo5BdEYGBgWdtlQvZKfjuoCpq8
kP5VL2mXXxlHjhxRs/v375elalrfbemzbdu2o0ePynRKSsrUqVP1e2rk/VYTxm0KOW8+Pj5qOjw8
XH7ZqVXkl6a8nCqayAmU32h6bUWOXdVHZNqZOovxiGSzsinVJzY2Vn6rZmZmqnb95RwcqXGz9vZc
fi/v27dPNiLT8lMduOmojbsk74UcRVZWlqnMZOxjb7fLVGaSDcpxnTihfS9VPkTqNNp7p4w7AAAA
ADw67lpmWrRm+7RF67Nztceq+vidl1ljVLsDTpaZ7uVLc+7u7jJilXHlsWPHjKMMGRR4eXmp2dDQ
0MmTJ6uxgH5rkvTZsGHDoUOH1Oz8+fNlsKPGX7JIXlqGEjIhszJSUwMQ6SPUUCIoKGjcuHGqA+DY
3ctMS5Ys+eyzz/r102pMNtO//49t2rQpa5lJHwMrcmULbcZCOpSjzBQeHv7YY4/pX0yTEbvMxsfH
X7lyRSZMH2YhH5WjR48uXLhwypQpnTt3loNV7aYyk3RQ01lZWbKdxMREey+UkJBQvXr16dOnX758
WS1SHDybKTIycsGCBXv37vX09JQJVTWQF5owYUJaWprqI+bMmXPhwoWytstEbGysfgeWsTiSnp4u
q8h7pGYzMzNlVv9NJEd05swZ2ZmtW7eq22FycnLkF9bJkydNdQrjNtVG5BXlVCtyKlQtb9myZXpd
Sc6bdNNLjeqrgs6XmYxHJJvV6yxCdsbf318mjC/n4Ej1zdrbc9WuioxGpjKTcZfkt796MJapzOTM
bpepzCRvt3TQb4uVvZVZOY323injDgAAAACPjruWmaYtWjd14T09XMLJMlO05RHgMjbUhwkyIbPS
qH8Rx4HQ0NAdO3bMnj17+PDhMkwrLi6Wf/PLtGxWRlXK+PHj1cNeZLQrg81Tp07JmFdeQobhaiPz
588/fvy4mpaxkqwuIwg1q5M++qNdZEgiffShIuDA3b80d/369YkTJ3799df63Uz9+vXt1atXt27d
vrqtU6dO/fr1u8cvzVmqTHeUmcr3pTn5tPzzn/9UjUL26bHHHjt79qwM6Y3tOtn5Jk2ayDHKq8tx
yXZUu6nMtOn2I8DlAyYblM+qvReSaS8vr88+++zJJ5985513tm3bpjrYKzPJ74UZM2acP39ezcrv
iAkTJsivBnkhmYiPj1ftYsqUKfI7paztMiH7o25HEsbiSExMzKRJk9S0uHnzpmwhMTFRprds2bJ8
+fJjx47JEe3cuVM/FVeuXJFTMXXq1AULFuh/d8C4zdjYWDmZ8vvOSO3VsmXL1N1Vqtu0adPUtFA1
MufLTMYjks3q7UL2XH0D0fhyDo5U36y9PZd247o6U5lJ3yXZ+VmzZoWHh0dERMi1Ki8k51CV/5zZ
7TKVmeS47J1Gm++UcQcAAACAR8ddy0zzV22dOG9VRlb5KylOlpnE6dOn1fhXlX7UtJB/56cb/kyW
YzImHTlyZEBAQHR09IgRI2Q7RjKKkT6yfRkOHDlyxNfXd+vWrYsXL1brzjc83ltWl+2oaSNjnxs3
bgwfPtz5fcOjzNlHgMswu2fPnuqepu+++87Ly/PmzRvGCJtlJssjwPdpr2Ygo3e9eqqoz5U2Y3Hs
2DH9G21GjstM6q6lpNt/G1LdcySz8jGTCfVh08l4/n//93/1G1XGjRvnfJnJ3gupWVFYWChH9K9/
/Uttv0WLFjYfvXzt2rUJEyYYj3Tq1KmqPDRv3jxVtxLqvhV1c0pZ2+U3i779lStXym8iNW26T0et
IrPSPnHiRP0eGR8fH/1UKDdv3pQXkqtC9TFuU1U6rGvhYpnhb6upbuppc0JOpsyq+oicNDmZql3O
p7Rb11mMRySb1b/pJpYuXapqdsaXs3ekMq1v1t6eq3b5qc3fZjxqoe+SHMua26SPrLt8+XJ1p5Iz
u+3M4evTqiipOgi5vGVWnUbF9E4ZdwAAAAB4dNy1zHTg6Knxs5e779W+eqYruvNhLw44X2YSMhTd
vXu3DAqETAQFBck/8mUsID+dr+bMnDnT29tbBjs2bzWSwcKIESNklK5mvby8bJaZ1OryU83qKDOh
fLQyk6/vsUuXAkwVImOMlabevXu3b99+166dNutKpgQGnj99+o6/KKeUlJSsX7/eeJnutNBmLIWA
DRs2aDN3clxmki03a9bs119/lQkZY3/zzTetWrVSfdq0adOtWzc1Js/JyUlOTo6Li3vssceCg4Ol
JTIysmbNms6Xmey9kAz19Seu+fn5/eMf/1DFlC5dugwZMqT49t/8ki3o95XIB9jDw0O2I9OBgYFy
qtWHXH5lyC8aeUVZtGvXrtW3b3EsU/vVq1fnzJmjOoitW7fK7xf1WmLFihXy0jIhLTt27FCFMPkN
NWHCBHW7mfxumj17tjoVWVlZ+lsWHx+vl6JM25R3dvv27fqXIqOjo9Ui+QVqfO9UN9lb2eyaNWv0
+oi7u7t6qLacVelgXWcxHZFsdu7cuao8FBYWNmXKFFU/Mr2czSMV+maFvT1ft27dtm3b1Ff85KJX
2zcetWmXdMYvzTm523c9fNO0HJe66U/6y1WqTqPNd8reTgIAAAAPvbuWmXJy86bOXzVu5tItuw+l
XC39t3Ri8tXNOw/OWbYhLDJa9XGsTGUma/IPePl3voNKU35+vo+Pj/7/nYeGho4cOVI9qkUGBTIW
UKMzGaFcuXJFBp4yKBg+fHhKSoo0ygYnT55ss8wkli9fLqNvNQ6S8Y4apFBmQvloZaaIiFBPTw9T
hcgUvdLUp0+f7t27t2zZcufOHXetNHl67ouJuaK92p1kBC5DfRn6avMG0iiL9CfpmDguMwkZtDds
2LBGjRovvvhis2bN5DOm2mW83a5du6effrp27drPP//84cOHpXHo0KFPPPFE3bp133333UGDBsl2
VGfjBm2WmWTa5gv5+fn9+9//fv311+vXry8T8om1rFfaXqdOnerVq3/44Ycye+rUqQULFqhFCQkJ
CxcunDFjxrx586ZPn278MG/dunXKlCmySH4jqFuTytp+8uRJVV5R5CTIIvkVs8by3Ku0tLRly5bN
mjVr5syZ8rtJr2F7eXnJdqSn7Jinp6c6FbKubHnu3LlLliyRiXPnzqnOpm3KL74tW7ZMmzZNfkVK
NzkDqrhmqvvIBbB582bV7fz58xNuP6pJfg/OsZg9e7bsvHWdxXREstkDBw7IL0HZ1alTp+p3GJle
zt6R6psV9vY8Ozt7/fr1erv6UpvxqE27pDOWmZzc7bsevmlaNi7viJBV5L86qsxk852yt5MAAADA
Q++uZSZxJTZ+4tzlY2YsNmbyvBUx8X9/Z8WBeywzCceVJhkXyCBi5MiRMjCXf/aPHz9e/3pETk6O
jKDHjh0rgwhpl1HGzZs3pX3//v1jxoyRkYIMgmQsIOMX1d9UZsrKypIhkqwuwyVZXZWuKDOhfLQy
U3Z21rZtG7KyMk1FIlP0SlPfvn27du3atGlTx2Um2aBsVtUObJJB+DrLQ/JTU1PlYyBkQj4q0iiL
tE5WnPkFIWT4rQq3JvIRCg8PN36x6OrVqxEREepzWA7WL1RcXBwTEyPbVAUCJ8mvhszMTP12J11u
bq5eSDJysl1+Q5keRm5NVrE+4fn5+fJ7RN2to5NZdaeMg7dVKSwsTEtLc/IMhISEzJs3T5uxnEA5
BFWMt2Y6IlVOkrdPXk4uR63VDusjXb58uelJe/b2XFrkwPV7nYycOck2+9jcbceHb036W2/E+p1y
ZicBAACAh5KTo8is7Nz9R07MW7Fx/Kyla7buOXLijP635+7q3stMQv4BL/9uV/9PvNZ0JxmPyD/+
bY4cZQQhY1vjUFfI8Ef6W3e2JuMdWd3meAdwnlZmkpw65ePv72eqE1lHVZq6devWqVOnBQsWOC4z
nT3ra/Mbc0YyGE5ISDh8+LB8loRMJCYmmkobJk7+goCSlJTkzO+UyhceHu7r6xsREXHmzJlZs2bp
T5W6K9MRme5acp78Gr148eLkyZPlV7nWVF7OnOT7/kZU2SsBAAAAqGiVMIp0SZlJyPDEeKsR8GD5
u8yUmpqybduGjIx0U6nIOoWF19esWbN+/fqioiLTImMyMtK2bduYl6d9cdSFKDM9HNLS0jw9Pbdt
2+bh4aE/zaocDh48GBMTo82UxdWrV3fs2KH/FTYAAAAAD6sHqMwEPND+LjNJ/P19jx07bKoW2UxR
UaHE1GiKj49XQICz96cAAAAAAPDgoswEiDvKTLm5OQcP7gkI8DcVjMqRCxfOenru4xs6AAAAAIBH
AWUmQNxRZpJkZKTt3r01MjLcVDYqUy5fDtu9210mtBcBAAAAAODhlZKSJENp0/haZdeurbJU6wc8
7MxlJklycqJ8PMp9T9OFC2e3b9+4efMaQgghhBBCCCHkUYgMoqOjI02Da5WoqMhdu7aa+hPysMZG
mUmSkZF26NBeHx8vmTBVkRxEOvv4eMqKGRnppg0SQgghhBBCCCGEkIc7tstMktzcnPPnz+zYsdnf
3zcrK9NUUTJFOpw967tt24Zz5/xkRdOmCCGEEEIIIYQQQshDH7tlJpWMjDQ/vxPbtm3w9NwXGHgh
ISEuKysz30ImZDYw8Lwskg6+vsevXk01rU4IIYQQQgghhBBCHpHcpcykkp2dFRER6ut7/ODBPTt2
bN66dZ1EJmRWGi9fDpMOplUIIYQQQgghhBBCyCMVp8pMhBBCCCGEEEIIIYQ4DmUmQgghhBBCCCGE
EOKCUGYihBBCCCGEEEIIIS4IZSZCCCGEEEIIIYQQ4oJU27x5DSGEEEIIIYQQQggh95hq1wEAAAAA
AIB7RpkJAAAAAAAALkCZCQAAAAAAAC5AmQkAAAAAAAAuQJkJAAAAAAAALkCZCQAAAAAAAC5AmQkA
AAAAAAAu8ECWmY56H9+5e59MXLt2TbUAAAAAAADg/nrAykw5OTkz5ixs/uGno8ZOltm8/HzVDgAA
AAAAgPurbGWma9euFRQUaDNWZJHN24ukPd/C8epGalNGavXIK9EtPvq00XsfT5o6W2ZzcnPlp7aO
gVpdvaiTrwgAAAAAAIB74bK7mWxWc2zWgGw2KpbakPyw2yEpKfnjz7s1fu/jKdPnaE13UgUmbeY2
m40AAAAAAABwoTKUma5du+Z52HvytDn5Vl9VUzWmpcvXrN/knp2doxr1yk5sXPwZ//PHT/qGh1/O
ydGWOr7JKDMzKzo6JiQ0PDRMJUKmw8Ijjp/0+7Ddl24t2g4ZPi7icmRQSJi069vUXzEzK0tW8Tl+
0v98QGJikmqk0gQAAAAAAFBxylBm2r13f4Omrd2atfb08pZZvWqjCkbRMbEtPurQqEW7OfOXyKwq
RR07cer7fr+3+/Sruo0/lHXfb/VZ914/Ll+5Ljc3T1/ROHHK98yocVN+6D+gc7fvPmjTsdkH7Zt/
8IlEJtR005Yf12/ykWytYfM2LT76VLWHhIbLuuoVs7Ky5y5c1vXrPu+1+qxBs9Z1G33wScfu/X8d
eNb/gix1XNsCAAAAAABAuZWhzBQVHdPq4y8bv9+uR69+2dk5eplJTcycs6hBs1aNmrf1OXayoKAg
Lz9/6sx5DZq2cmvWRlK/yUcNm8vP0ln5+e0Pv4RHXJa1pKcq/aSmXh0yYly90vpR24Yt2jVo1lqm
9cjq2kTjj+o3+bBeow/qNZZoi4JDwkr34/r1gIuXun3Tt7QWVvpaHzVq0aZuow/UDjR5/+OFi1dK
H/VyAAAAAAAAcC1ny0zqXqEly9c0aNq6fpOPdu3ZL7PXbj/SOzYu/v3WnzVs0fbn34eU9r5+fdnK
dW7N2tRr8lGrj79ctnLtxUtBlyOjdu4+0LN3/3qNP3Rr3ubr3v3z8rR7mrKysvr+/Kfq36lb7zXr
N588dfpy5JXExKSExMSEhET5GZ+QkJySciEgsHX7Tg2btx0xZnJKSmpMXJwsUttJS0//tFNPS33q
o59/H+xxwPNKVPS58wFzFyxr8WEH2bJsf8eufeoVS3cRAAAAAAAArlO2R4CnXk37pGO3hs3bftm1
l3oGk7qVafa8xW7NWjds3ub4SV+ZvXgpuMn77WS2w5c9QsNKv9Gmy8rK+nPwqPpNPqrftNXSFWtU
45p1mxs0K61eDRg0Mi0tTTXaFJ+Q2KZDl0bvfTx52h2PAC8oKJg4dZalBNZq+sz5+p1Wyinf0++3
/tStWZvW7TtHRcdIi3WlSRok1yhAAQAAAAAAlEvZHgEuPzdu2d6gaav6TVtt2rpDtSckJLZs87lb
8zY//jJQtQwdOV7d9ORx0FNmc3JyCizUbUeJSUntPu3asHnbth26pKZelZZOXXs3bN7mo3ZfJsQn
yqx0U/dJGamWqOiYNh26NGzRbuKUWTKba+kpq1yJim78Xlu3Zm26fv1DTk6utOTn56u1cnNLZ5ev
Wlev8UcNmrVesHiFzKq1AAAAAAAA4Cplu5upoPQLbtmduvVu2Lxthy+6qyLR7HlLGjRt3bBFm2Mn
Sm9lys7O/qLrt27N23zyeff09AxZRVjWLpWXV/rlu1FjJ7s1a9OgaavzFwKTk1MaNW/TsFmbPwaN
kEXGzkaqPTomVt3NNHHKLJnNy89XBaM9HgctD35qvXBJ6QOYjFUkWVFmExKTGr/XtkGz1r37/qot
uE29YExy7objmX6hGZa2cvL393d3yMPDQ+v6EImIiNi3b996C5mQWW3B/bZu3bphTpDd1lYA7ofz
58/LdfiXfTNmzNC6AgAAAEDVVrYyk1bT2XfArVnrBs1arV2/JTMzs9XHXzZs3rZP/z/U0sTEpI8/
6+rWvE3/XwdZ14xUn9VrN9W3PO3b2+dE4KXg+k0+atCszcw5C6W/9SqKarcuM6n2lWs21m/aSrZz
0OuI3tkoOzv7y669GjRr/Vmnr7Wm21Tnye4x36ws/GZ2WEpGaSGsfNzd3bVxoR2TJk3Sulak1NRU
Pz+/pKQkbb7CREREzJo1Szs2A2m8fLn0Ee/318CBA7UdsmXTpk2yk6dPn5Zu2gpApbtw4cLgwYMX
L1585cqVWFvOnj0rl6vWGwAAAACqtrKVmURBQUFubu7X3/3U6L2PO3b5dsz4afUtfwbO+/gJ1SEl
JfWTjt3dmrX5/sffc3NLvyVnpL7LtmT5GsszuVsfO34q4nJkw+alfwxuxuwFskhoXe+k2u2Vmdau
36zKTLv27rdsw7yRrKwstVdffNVLa7rtmqXzaq/ErxemDlkdmZn9951QZSVnRl5Ip0owiYmJ2nxW
VnZ2tta1Il28eFFe18/PT5uvGLJ9GR6XFmz++mvUqFGrLGRCtciiM2fOaF3vk7veIbJhw4YVK1ZI
N22FO8m7KSP/5ORkbd5SJJUW9aVONaEtsJA3Nzo6WptxgnwWZCPy0+bWhGwwKipKm6l0J06cGD58
uDpXMiGz2oKyKOs5vHcVsc0KNXPmTDnDS5YsUZ8gE29v79jYWOmg9b4tPj5ejlSR3zBa68NF/4Bo
8wAAAAAeBOUpM8nPI0eP12v8Ud1GH9Zr9IFb8zbf9f1N1Y9kkYweu37dp2Hztu+3/iwpKUVmjUUf
9aW53wcOl7UatWgbHByam5vXtGV7t2Zt+vQfIIukv6WjRtY1bkGVmdSzmWQ2T17VMgjx9jlRektU
09aq3TgyUauHhUdIB3nRXwcM1RbcSfoEXMm+munKIc2cOXNkfJiRcU9fxCuHSigzRURE6DUmIeNh
1S4TWpOl0nR/72kKCgratWvXToekg3TTVrjTqVOn5CiM31fKycmRluTkZH1CW2ARGho6atQobcYJ
cmHIRtLS0mxuTYSHh48YUfpN0vtCrzEpMqstKIuynsN7JB922WY5yi7ykamEu/9smjZtmuyzPfKB
sllmWrBggXy+5PJQb5NMHDt2TFtWhTlznvU++gdEtQMAAAB4IJS5zCRU0affL381aNbarVnpPURe
R3ykRcZ4QibmLVymHgG+YNFy1T8vP780lrsM/M8FNG3ZvkHTVj2+7afu7vnm+5/dmrdp/F6702fO
yaxQ9SO1NUW9aGmZ6VPtL83J0qyc0r92J1JT09p06OLWtHXr9p2lj7TIa6kXVR2GlT6VvJXslfv2
PTJr3HLFcVxmOnPmzJYtWxYtWuTu7h4QEKC13ia77+3tvWHDBhlPylDTy8srMzNTW2YRFxe3ffv2
JUuWLF26dNeuXampqar99OnT69atUwPUAwcOqCegKyEhITt27JBXXLNmjZ+fn7EYJztw+PBhmZC9
kg4XLlxQ7fbMmDFDXkJns8wkZs0qrfrdL+np6ZecIN20Fe4k52Hu3LlyFHKqVYtry0xy/oODg+WN
rpplJtklB5y8v6ms5/AeyW8JOaXGa95Jcj1X9N1/9pS7zLRz5041Lb9F5b0YMmTI8ePHVUuV5cx5
1vvoHxDVDgAAAOCBUJ4yk6rRnDjp59a8Tf2mrb794SdVAxJqIjX16uedv5FFTVu237ajtKyjO3c+
oMOXPetbvmd31EcbFO0/6NWgaWu3Zq0//qyr72l/1aikpaWfO38xIVH7P8BjYuPafvpVw/faDRw6
RrWkpaerF5UXks1Kevf9JeJypFoqZJSycMnKhi3aNmja6uveP2Vl2f3a2jXtIFzGXplJdmnFihWy
SEaGMshUtwVt3LhRL36lp6dPmTJFGseOHTtr1qzRo0fL9NSpU/Xv3AUEBAwcOHDQoEHTp0+fPHmy
LJVhv7qJY8OGDar/qFGjJkyYoBen9uzZI43yirKK+jaZjFT1Dcpa0t/f31/ahbe3t2q3KSwsTHXT
yboyHhYyoTXddh+fCC6Hr+2EgTQayRmWn9oKBqmpqXKGw8PDJ02atG/fPtXoTJlJTriM+Q8ePKjf
yZWbm3vmzBl9tCxvU0hIiEzIKFraZalxa3Ixnz9/fv/+/fJTzrNeZlKlBNmTU6dOlaOMUg6lJ8uh
u97fVI5zKFd+YGCgnEM5zEOHDl25ckW1y0dDncPTp08HBwerRjnhcp59fHxSUlJUi5w96aZf1VFR
UZ4WCQkJqkWRLRw4cEBeQn06Ll26NH78eHd3d/UVxUo+1fdeZlLkmhk3bpxeO7Y+OYrp2O1dnOpM
ynvk5+cn21FvhPza8fDwkN8S6leuYn2S1bqyzYsXL8peSX/1m810noV0kJ2RNzoyUvuNbeyjf0DU
Intvt/ULAQAAALiPyl9m2uK+y83yTCXPw6UlCf3f92oEUlqEata6ftNW9Rp/2P+XQQuXrFyxesOo
sZObf/hJfcuX19S326SzkHHCqLFTSotWpQ9satX/10Ez5yyat3DZ6PFTvuzau0Gz1oNHjFM9Zcjx
eeevped7rT6dMGXW9FnzO3X7zufYScsrXx84bEzD5m3lRT/6+IuxE6evXL1hweIVvfr8Uq/xRw2a
tmr+YYeLl0oHqLId1b+i2SszHT58WNrXrl2rRlAyrF2yZIm06P8/vwxxZVYGYGpX5dxu27ZNWs6f
P686TJw4ceTIkfq4TgaNslTGZmpWBl3GrQnVsnz58qysLJmVE75582Zp2bFjh+qwYcOGwYMHDx8+
/NixY/Zuv9Lt3btX1tXNmDFD1ZiEdZlJry9UPm0P7qQtu83mGF7Ie6TKT3v27NEf3O64RCLD4GHD
hqmzsWLFikGDBqnvMaWlpUln/axK44IFC2RC3gtpN31pbuXKlXION27cOGvWLNmUKjPJFSL7ILPy
rsleqdUrmuzSXWld7SjfORw3bpzxHPr6lv79SrlipfOWLVumTJly+vRpaZFtyuUqJ0o+OzKhqpny
SZFuqt4q51l1kO3Ita3fMLhz587Ro0fLmZw2bZp8jtLT0+WDJp8mOatnLCWqSj7VriozyVFLt/j4
eJm2eXKE9bHbuzjVmZTV5TfP4sWLhwwZIqdRdka2KSfTx6f09lXV3/okq3Wlcd26dfJa8qGQ3xjS
bjzPMiu/AGVn5DeP/F6SN1qta+yjf0Ck3cHbbf1CAAAAAO6j8jybSaSlpX/6ZU+35m169uqff/up
TDr517/89D524ouvejVo2rphi7aN3vu4YYt2jVq0a9CszXsffbp0xRrpY1xLpmfOWdjiww6l/ZuX
9m/8fnv56dastJLV+pPOsXGlwyexau0m6SORpZIm73/y4y+lfylMtiAD19nzFjd+r52sUvqKlu24
NW8rnbt93fesf2mNxrSrFcpmmUl2YJSF8UYJGUrJQG7q1KlqVgZvMvqSw1GzQt1AdORI6d/RkxMu
0/Pnz1eLhLTIIr0IZV1mmjVrlgzeVI1JkVVkxC4DM/VmycvJKk4O0tSX8nTGF5KBqNZ62/r167Vl
lU7dEWYih2w0dOhQ6aatYDBz5kxVIIuOjpa11N0Wdy2RSKN6j4RMyHg4Ozvb+TJTYGCgjNVV9VDe
l4ULF6oyk2pX10NMTMyyZcuM10YFkV1S5O2Wk6CukzIp9zlU398Ucg7VJ0WVmfRrSU7RwIED9eqJ
u7v73LlzZUJ2UrolJiamp6fLmytbUx28vLxUwUvO3qBBg1QtRjpPnDhRfdFsxu0valX+qXZVmUmd
Itl/eyfH5rE7LjOpkyPTY8aMWbNmjaVL6Wd87dq1MmHvJKt19+zR7mOVa0D/8qx+nmVv5cD1dTdv
3rx161Y1rffRPyCO326bLwQAAADgfilzmUmGB/Jz+uwFllpPq8NHS+/XkH/uWxb+TVVz0tLSV6ze
8Pufw7/s2vvTL3v+0P+PKTPmXrgYqPpYCwoOWbhkZd+f/uzc/ftO3Xr3+LbfkBHjt2zbdSUqOt/y
ZRC12e279vb9+c/v+v7ap/+AJctXh4aGW9bW+PqdnTBl1nf9fvv0yx5devzw5+BRa9dvybRUWCqz
xiRslpmuXr0qjRs3btTmb1u8eLEMpdRhGsm5lfG5quzoJYypU6eqjVy+fNn65JvKTLJNGV6qAbPR
pk2bpJt6aI4qM+kDOcdMZSYhI0+1qEqVmbKzs+X83JV001a4Tc6J7PmFCxdkTC7TY8eO3b59u7TL
SZN2xyUSWaRmc3Nz5Q2V7TtfZpIBs7xNqpuQd1CVmWQ35B2U9ygkJMRYnaxQskti7969cgZkh2UH
VIu1Xbt2aesY3Ms51Ouh6hxeuVL6x+OkXa9KnDx5Uq/JCumgPjvyWZBuiYmJAQEBo0aNCr9NfRtU
tnb06FFVoVDkTVHvi17aqPxT7aoykzqfwcHB9k6OzWN3XGaSl1bt8+bN079IK5eE+rzbO8lqXbny
Vf8zZ87I6VXT+nnWpaSknDt3bvLkyfLrSLVYl5kcv902XwgAAADA/eJsmamgoED+WS9k+vDRY03f
/7hBs9Yjx06WWfm3vqWLmbFdVszI1IaOwuYqpkZ7m3XMuFZ6+h31nfJt8F7YLDPJeEwa9+/fr83f
tmXLFmnXvwd3/vx5aZEtDB06VNpHjhwpP/UyU0xMzPTp06VFDB8+fMWKFfqtTMJUZpJtqp42qdKS
KjOl23kYtomMM9W6Ogdlpvv4pTkZ927cuFEOzQHpIN20FW6TAxw0aNCI2+QtGDNmjFw/dy2RSE9t
xkLetcDAQOfLTJs3b9YH2yIoKEheXU3LOy5L1f7IKa2Ei1l2ae3atbJXcuwybc/48ePlELR1DMp9
DocMGaLNWMg5lOtZlZn0T8ehQ4fUOVRSUlJkaWpqqmxfJhITE48fPy6fiyV3unr16u7du+XDoq1m
YCx/VPKpdlWZSd0yJufT3smxeeyOy0zq1icxb948WaSm9TKTvZNsWtdmmUn6yLmVN1d+j7m7uy9c
uNBBmcnx223zhQAAAADcL2W+m2n33gPvtfq0QbPW7T7tmnTnw2WtFRQUyEhAqFk1LdSsNW3x7Q76
6kK1KFqTgbbAQrXoNy6ZZiuTzTJTVFSUNMqQT5u/bYOl0KNG3bt27ZLpiRMnysT58+dl5Hb58mVp
0ctMypUrV/bv3y8jtIEDB8pS/VsnpjKTbFNmZQR4wRZVWlKvrt9F4pjpEeAytNO/5SQTMqstsHDy
DqmKMGTIEG0nrCxfvlxG6WLjxo2muoZcKhMmTPDw8NDmbz+/KTg4+K4lEmnUay7yvstsXFycGsnr
JTwZXasxs3WZ6cCBA8bvQsrAfoSlzCQXgHrekOxbUFCQ7PC5c9rfZKw4c+fOlX3Wq5k2DR8+PCYm
RlvB4B7PYertP5uozqG8hCozqZMgTp8+rb6fpcgFOXjwYPVJV93kIzBu3Dht8e372mTCx8dn5syZ
qlHIh0vVZ/XSRuWfaleVmbZs2SJHIbtt7+TYPHZ7F6c6k47LTPZOsmldm2Um2athw4bpd0vt2LHD
QZnJ8dtNmQkAAACoUpwtM8XFxR84dOTXAUMbNG3VoFmbD9p29PUrfYyrjGpUB1izWWZSYyfr2wpm
z56txk4yWhtk+RNy6vuJiroHSpWZcnNzZXBuLAklJSWNHz9efy1TmUm2KVtevny5mtXJWtHR0Wq6
TGUmIcM56a/oL6TIrLbgr7/u76NSVPXNJhkqX7I4fvy4dNNWsFCnWh+7KtOmTZNhsDMlEhnty7R8
LjZv3ixvokzIGyrt6p4peYNkwGyvzBQTEyM7I2+f6jllyhRVZpKdHDlypPrTYPJz9OjRFy5ckOkK
JTu2dOlS2TF75CoNDLT9Bdh7PIdy6mRaTp2czMmTJ8sFbCozyb4NGzbs1KlTMi2LlixZsnLlSplW
dQfpJud21KhR6knV0rh+/Xr1fTG55uWzoHZb9VHVE7me1dYq/1Q7U2aS3dB63yaXkJxMOdKEhAQ5
aVu3bpXjCgoKkkX2To7NY7d3caoz6bjMZO8km9Y1lZnUjp09e3b48OFyDch0amrqpEmT9O8R6330
D4jjt5syEwAAAFClOFtmOuR5tEGzNg1btGvQtHXP3v1Dw0ofh3TXGpMMAywP0DDfbSSN1uva7CxM
LZav7knPO55hJFuztN/xMHLVYnOblcNmmUnMnDlThugy6tPmr1+PjIyUnosXL5Zp9ZUQ0yONDh48
KI2qzKTuh9KfyKusXbtWGtVtIKYyk5CBmYwwjcN+GcLJcFq/u6GsZabw8HA5BFnFAXnF+3grk9i+
fbsMm+9KPTNIJyN2400fyoEDB0aMGCFvpRyXgxLJlClT5FSPHz9+3LhxY8eOvXL77/HLuzlw4EC5
HiZOnLhnzx57ZSZp9PT0lBM7depUeTnpqcpM2dnZMn6WadkxOavLly+Xy7p0uxXp0qVLDup0cqQO
6i/3cg6HDh26bNkydQ7Vo3+k3VRmEmfOnBk2bNi0adPGjBkzffp0tR35pOvd5FMgLzdp0iTZiGxN
v3Hm+PHj8hJyPqVdPnHqTK5atUr6qLJLJZ/qu5aZ5ENt/TmSS0jr8ddfsreLFi0y9rF5coTNY7d5
caoz6bjMJGyeZNO6xuqPfp7l4pdLaPTo0bJl2c8tW7YMHz5cVbuMfWQ78gGRRgdvN2UmAAAAoEop
w5fmBgwa2e/nv7bt2KP+L2j5J75qd4bNgpSx0bi1Mm1Z2Nx4VWCvzCQDeGmXQV1AQIAMiWV0JMMt
aVFVCTkcmZVBV1BQUG5ubkJCws6dO1VNx93dXTrIkFvGWjIGPnz4sAyxZAtHjx6VWX2IpcpMMmKU
1dXJiYqKkpGkbNbPz0/6h4WFqX2Tl1arlLXMJHx9fR1UmmR/THc5PSLk6o2Ojg4NDVUfE11kZGRw
cLAzZzg1NVWuEP2LY4ps9vLly/LOxlke2f6wkvM2YsQIuWjlHIaEhGRbPZ3dSD5ZckrlU6NXguQs
ybWnV6PkbMtG5GqXj4xqUdLT0+UMy4dCm7c8P1s+burZT5V8qmfOnKk+MjatW7dO61dG1idHsT52
4fzFac3eSbbJeJ6lv6wYHh4uE7KT8tar4pGxj5G9IwIAAABQpZShzJSTnaMXgPQJx/zPXdjrcSg0
7I7/K/6M//l9+w9djtRu9NBdCgrZ43EwKFj7Y1JKbm6u/7kAGYWo2YyMTJ/jp3bv3e952Ds7u3QY
r8ooMTFxu/ce8Drik5ysPS4qJSVVXuWoz4kDh46cOHl/6h32ykzC19d3qOXZ3sqoUaNkWKsts/wJ
p2HDhmnLLA8/ksHV2LFjZVp9206GW6oypZPBqj66Vt+OUe36qwcGBsqrqEYhr64/UEmUo8wkZIgo
+6Y2aCSN9/c+JjygVJlJmyk7daOf6Q4pAAAAAEClKfMjwPPzy3Cr0RdffTtkxPhv+/xy2Pu4zKri
1Kdf9hwyYlzvvr+dsjzdSfvixib37t/2nTBlZvdv+63fWHrPjuqckJjU4YvuKbfv7Dhz9lzLNh1n
z1uycMlK9YfkCgoKTp7y6/5N37ETpv/+13CP/Z6qZ2Rk1PhJMz9q98V3fX9bvVZ71ItaVEVkZGQE
BQUdO3YsJCTEur6TlpZ29uzZ48ePX758WZ0iGTyfOHEiLCxMdcjJybl48aKsfurUKeuaTmxsrLe3
tywy3mKQnZ0tryWrqEf/aq33THZp79696yxkQt9DoKzupcwk6w4cOHDVqlVV7ZMOAAAAAI+OMpeZ
yuSb739asXp9527fbd22S2ZVuaRHrx+Xr1r37Q+/HPTU/m5abFz8l916q+c9hYVFdO7+XXyCdmNO
YmLSVz1/SE29qmbPnrsgs0eOHgsJLa1lqPFk776/7jugVZdM/hoy+vhJX5lw8vYrAPeRfE5NXzZ0
nvw24OtUAAAAAHB/VWyZqUevfj/+/NemLdtVPUj9/Lp3/6969unV5xe9JSAwqEevH2VC6dGr/6Wg
EDWdnpbepcf3epnp3PmAT7/sOXXGvENeR2VWrS5bM33VTpEh6+9/DZee0k31BAAAAAAAQAWp2DJT
16/7BIf8fduR0rXnD5eCQ34dMHTbzj0ym2/x15BRo8ZNPXc+YPT4qQMGj7xW+lfnSm9M8PY50bHL
N/oDhvxO+3fs8m1Y+GXZbF5entrs8lXrvv7upxOnTm/assPTy1ta9Jf78ZeB+w96yQR3MwEAAAAA
AFSoii0zzV+4PCyi9NFCxjLTrLmLExKTTvmdWbBoucyqAlDq1avTZy/88Ze/ZsxZdNXy2CD1UKFF
S1dt3LxN7xYVEztizKRfBgwZMXqSfouT2Lp9919DR48cO9nvdOmfxNZfbsXqDecvBKppAAAAAAAA
VJyKLTMBAAAAAADgEUGZCQAAAAAAAC5AmQkAAAAAAAAuQJkJAAAAAAAALkCZCQAAAAAAAC5AmQkA
AAAAAAAuQJkJAAAAAAAALkCZCQAAAAAAAC5AmQkAAAAAAAAuQJkJAAAAAAAALkCZCQAAAAAAAC5A
mQkAAAAAAAAuQJkJAAAAAAAALlAtCQAAAAAAALhn1W4BAAAAAAAA94wyEwAAAAAAAFyAMhMAAAAA
AABcgDITAAAAAAAAXIAyEwAAAAAAAFyAMhMAAAAAAABcgDITAAAAAAAAXIAyEwAAAAAAAFyAMhMA
AAAAAABcgDITAAAAAAAAXIAyEwAAAAAAAFyAMhMAAAAAAABcgDITAAAAAAAAXIAyEwAAAAAAAFyA
MhMAAAAAAABcgDITAAAAAAAAXIAyEwAAAAAAAFyAMhMAAAAAAABcgDITAAAAAAAAXIAyEwAAAAAA
AFyAMhMAAAAAAABcgDITAAAAAAAAXIAyEwAAAAAAAFyAMhMAAAAAAABcgDITAAAAAAAAXIAyEwAA
AAAAAFyAMhMAAAAAAABcgDITAAAAAAAAXIAyEwAAAAAAAFyAMhMAAAAAAABcgDITAAAAAAAAXIAy
EwAAAAAAAFyAMhMAAAAAAABcgDITAAAAAAAAXKDMZabw8PCzDgUEBMTExBQVFWkr3A+JiYlqZxIS
ErSmB1lwcLA6HJvkhMfHxxcUFGi9HSosLNRWO3s2NzdXa3WOvIS2ph3+/v5hYWEZGRnaCgAAAAAA
4FFS5jLTjz/+WMsJDRo06NOnz9GjR0tKSrQ1K9HSpUvVbsybN09repB17dpVHY4DtWvX7tWr1/r1
669du6atZktCQoK2Qq1a58+f11qdExUVpa15N5988smyZcvy8vK0NQEAAAAAwCOgospMul9//bWs
d83cuypVZsq/rdwVN2fKTLo2bdp4e3tra1qpnDKT0r59+8jISG1lAAAAAADwsCt/malVq1Y/W+nf
v/9nn31Wr1491UeRxuLiYm39SlGlykxNmzZVO5Ofn681lZFeZmrXrp12om/76aefvv7669atW6sO
Su3atd3d3bWV7+SqMtO3336r7cFt8i736NGjbdu2Wg8LuUjS09O19QEAAAAAwEOt/GWmESNGaE1W
CgsL165dq5dXxIEDB7RlleL06dOzLU6ePKk13T8uLDPNmDFDa7ISFRU1derUOnXqqJ7i8OHD2jID
V5WZwsLCtFYrsqhfv35av1q1xo4dqy0AAAAAAAAPtQopMylnzpxRPcW3336rtT56KqfMpAQEBDRp
0kR1/uCDD7Kzs7UFt1VCmUlcv369S5cuqmfjxo0LCwu1BQAAAAAA4OFVgWUmMWjQINW5bt26Tv4p
tIdPZZaZhLG6N3fuXK31tsopMwkPDw+ta61aoaGhWisAAAAAAHh4VWyZaf369aqziI2N1VptKSws
9PPz27lzp736RUpKyokTJ3bt2nXgwAF/f//r169rC+5BQUGBbEo2uH///kuXLlnf++NATEyMt7e3
7LD8vHLlioPHe1dymUkMHTpU9W/ZsuWNGze0VotKKzPJOdG61qp15swZrRUAAAAAADy8KrbMdPDg
QdVZBAcHa623bq1du7a9RWBgoMyeOXOmXbt2qtvUqVNVH6WkpOTYsWPdunVTS3Vubm6DBw9OSEjQ
+t1p06ZNavvyQlrTnRITE4cOHdqwYUNtcxZ16tSRbYaEhGidbJH9OXDgQMeOHbV1bvvkk082b95s
fNL5hg0b1D7Url1b9ZFjVC3y6lon55S1zCRnVfUXx48f11otKq3MJG+31rVWrZiYGK0VAAAAAAA8
vCq2zLRo0SLVWcTFxWmtt27NmzdPNZ49e9bPz69BgwZqVhjLTMXFxWPGjNEW2CIrHjlyROtt4Pgv
zR0+fNjNzU11sFa7du3NmzdrXe9UVFQ0cOBArZ8tvXr10m9ZMh67ieMbu6yVtcxUUlKi/8W3+fPn
a60WlVZmknOoer733numO6oAAAAAAMBDqQLLTDdu3NCfA92wYUPjc6D1MtOBAwdatGihpt3c3Nq1
a7dmzRqt061bkyZNUotEy5YtZXbTpk2rV68eMGBAvXr1VHudOnVOnz6trXCbgzLTiRMn9D/HJq/4
+++/L1myZPny5X/88UejRo1Uu7C+DaqkpGTIkCHa4lq1OnfuvGjRos2bN8+cOdN4c9NPP/2k+h8/
flx2WOi7OnbsWNWSkZGh+jiprGUm8eeff6pV+vbtqzVZVE6ZKTk5+f3331c9FyxYoLUCAAAAAICH
WkWVmYqLi2fNmqV6it9//11bYKGXmVq1aiU/O3fu7OPjY/zGmTh9+rTqIwYMGJCXl6ctsAgPD9dv
2GnXrp3p+eL2ykzZ2dkffPCBWtStW7fo6GhtgUVsbGyPHj3U0gYNGpi+kXfo0CG1SKxatcr4MKYb
N27MnTtXW1ar1oULF7QFFpX/bCah30vVvn17rcmiQstMch5SUlK2bNnSpk0b1a1Xr178mTkAAAAA
AB4R5S8zDRo0KNNKenp6UFDQnj179PuYRJ06dUxVCb3MJL766itTCUnp06eP6tC5c2eb37qKjIzU
H3u0c+dOrdXCXplpyZIlqv3DDz/Mzc3VWg2uXbumV68GDx6stVpuZfr8889V+9ixY7VWg+Li4h9+
+MFmh/tSZtq0aZNapXnz5lqThavKTI0bN5bjMpIWbdltY8aMsXmS793N4pLCG3cUJQEAAAAAwH1X
/jKT87Zt26atfJuxzHTx4kWt1SApKUlbXKvWoUOHtFYrAwYMUH169eqlNVnYLDMVFxerm6fEgQMH
tFYr3t7eqk+zZs30G6wuXLigGmvXrm3vgdayTdWnR48eWpNF0/tRZtqzZ49apU6dOsYbr1xVZror
OXubNm0qx61MZ6+kz9gXMmjjhQHrzhkzdvul9NzSrRXdLP5xxZkWYz3j0st5PgEAAAAAQEWo2DJT
06ZNDx48qK1poJeZTF/p0nl4eKgObdq0MX2ZzujcuXOqW/369YuKirRWO2Um/U/sS2cH5Q/Zjv40
pcuXL6vGxYsXq5b+/furFms5OTkrLDZs2KA1WdyXMtPOnTvVKnKw96XMpLRt2zYiIkJb/26KS0qG
bQmoNdjDOrWHeGzx1ap7G05GS0v9YQeC4rNUCwAAAAAAqArKX2Zq1KhRWzs6duzYv3//tWvX5uTk
aKvdSS8zDRkyRGu604wZM1SHX3/9VWuyJT8/X3UTxu/l2Swz6ZWXnj17ak12dOrUSfU8fPiwavn5
559Vi3GDTrJXZsrIyDhvh+lbhOUoM61fv16t0rJlS63JwlVlpqCgoJu2yDHKG7Fp06ZmzZqpns2b
Nw8PD9c24dCmUzHG0pIevcZUeKO4uLhEMmxLgNelZLUWAAAAAACoIirqEeCO6WWmqVOnak13Gj58
uOowefJkrcmO5s2bq56+vr5ak50y07Jly1Rjw4YNtXqYHfXr11c99+zZo9b96quvVIu7u7tqcZ69
MpP+JTtrpi8SlqPMNGfOHLXKZ599pjVZVOgjwI1SUlL0t8bBLWBGXeaeqDXY4/1xXlGpNp7Vdb3o
Zt/lpwdvvFBc/PfNWQAAAAAAoOq4z2UmezcH/fbbb6rDqlWrtCY7OnfurHoav51ns8w0c+ZM1ei8
zZs3q3XbtWunWnx8fFSL8+5Lmal///5qlT///FNrsqi0MpNwd3fXeteqFRsbq7Xa12D4gVqDPf5Y
e06bN1A1JlkqfUITsrVWAAAAAABQlVTRMtOgQYMcd9B98sknqueRI0e0JjtlJv1FO3bsOMk5fn5+
at0OHTqodb28vFSL8+yVmRISEvbakZGRoXWyKGuZqaioSL+TaPXq1VqrRWWWmVJSUrTetWodP35c
a7VPfUVuwDpzmclYYzoRdlVaDA+bAgAAAAAAVUUVLTONGzdOdRg2bJjWZEtxcbH+uG5/f3+t1U6Z
afXq1apxwIABWpPTunfvrtZdt26d1uS0yn8EuP7H8kRQUJDWalGZZaaSkpIGDRqo/tZ/bdCazTKT
dY0pPa9woaezjxUHAAAAAACVpoqWmfSS0DfffKM12ZKUlKS6iZSUFK3VTpnp6NGjqrFHjx5ak9MG
Dx6s1p0yZYrWZIvstry0yM7++4tdlVxmKi4u7tmzp+rfqVMn45+ZE5VZZkpLS9N616p16NAhrdU+
m2Wm39eeM9WYOs48Zn3HEwAAAAAAuO+qaJnp/PnzqkOdOnXi4uK0VivLly9X3Vq1aqU1WdgsM6Wn
p6vGunXrGmtSJmlpaXKMYsCAAcXFxapx06ZNat22bdvevHlTNZrExMSoPrVr1y4sLNRaK73MtGbN
GtVZWD+wvDLLTLt379Z616oVHR2ttdpnXWZKyS6oPeTvGpPoOPOYdSkKAAAAAABUBVW0zHTjxo0P
P/xQ9Rk/frzWeqfr16+3bNlS9Zk0aZLWamGzzCS+/fZb1T5t2jStycqsWbNUnyFDhmhNltum6tSp
o9o9PDy01jvpf8muS5cuWpNFpZWZiouLV61apXqK7t2762UyXaWVmdLT0/V35/PPPzfdVGWTdZnJ
73La8qORMWl/nzfrPgAAAAAAoIqoomUmsWjRItWnXr16+qO4dSUlJfrzm+rUqRMVFaUtsLBXZjp0
6JBqFzarRcePH69bt67qYHpq9YABA1R7mzZtUlNTtdbbYmJi3NzcVIeVK1dqrRZ6mSk3N1drKiPH
ZaaioqKEhAR3d/cuXbqobqJZs2aRkZFaD4OKLjMVFxcnJibu3btXrzGJ/fv3a4sdqjt0/11LSKrM
NGjjBW0eAAAAAABUGVW3zFRQUKD/fbd69epJz4SEhJKSkhs3bvj7+/fp00ctErNnz9bWuc1emUlW
1//Svxg1alRwcLBs8ObNmzExMTNnztQfWf3111+bbgVKTExs3LixWvrhhx/u3LkzJydHNpiWlrZj
xw79L7u1bNnSdNeSXmYyPqS8TPQyU926dRvdqWHDhmqRkexMSEiItvKdjGUmOVhtKw6Fh4erdY1l
Jnvr6k9k1w0fPtyZW5lEm8lHag326DT7eLGd/lGpearMNGOf7aMDAAAAAAD3UdUtM4nLly8bb4oR
9evXr127tjZj8euvvxofhKTYKzOJjIwM410/Qjao38GkfPzxx8nJydoKBsePH9frUIrsjzZlIbPW
taQvv/xSX/rFF1+0bds2Pj5eW+YcvczkjL/++svmzivGMpOT9BuXjGUmJ02aNMneo6ysTdoVpKpI
nWYfH7DunCl/rD33/jgv1cE/Kl1bBwAAAAAAVBlVuswk4uLi+vbtqzqbNGjQYMGCBTarGA7KTCI3
N3fMmDGmcpVuwIAB6el2qxgBAQFffPGF1vVOHTp0CAwM1PoZbNmyRetxW2xsrLbMOY7LTHXr1m3V
qlWPHj3mz59/10cmVUKZqXHjxp999tn48ePt3VFlT3peYdvJR1UhyUFGbr2orQAAAAAAAKqSMpeZ
Kl9JScnFixdnz57dv3//rl27fv3113/++eemTZusH5Ckc1xmUmJiYlasWPHrr792795dNisbX7Ro
kc3nGZncvHnz2LFj48aN++GHHzp37ty7d2+ZPnz4sPXzthXZ/6NHjw4YMEBeRToPGTLEQRnrEZee
VzhpV1CbyUfUc5qMaTD8wFdzT2zxjXHuG3gAAAAAAKCyPQBlpnJwpswEAAAAAAAAF3o4y0yLFy+m
zAQAAAAAAFCZHs4y0+TJkykzAQAAAAAAVKaHsMyUmpraqlUrVWZyd3fXWgEAAAAAAFCRHqoy0/z5
8zt27NigQQNVY6pdu/bly5e1ZQAAAAAAAKhID1WZaejQoarApKxYsUJbAAAAAAAAgAr2UJWZFi1a
1KlTpx9//HHSpEnh4eFaKwAAAAAAACrew/kIcAAAAAAAAFQyykwAAAAAAABwAcpMAAAAAAAAcAHK
TAAAAAAAAHABykwAAAAAAABwAcpMAAAAAAAAcAHKTAAAAAAAAHABykwAAAAAAABwAcpMAAAAAAAA
cAHKTAAAAAAAAHABykwAAAAAAABwAcpMAAAAAAAAcAHKTAAAAAAAAHABykwAAAAAAABwAcpMAAAA
AAAAcAHKTAAAAAAAAHABykwAAAAAAABwAcpMAAAAAAAAcAHKTAAAAAAAAHABZ8tMGQAAAAAAAIB9
3M0EAAAAAAAAF6DMBAAAAAAAABegzAQAAAAAAAAXoMwEAAAAAAAAF6DMBAAAAAAAABegzAQAAAAA
AAAXoMwEAAAAAAAAF6DMBAAAAAAAABegzAQAAAAAAAAXoMwEAAAAAAAAF6DMBAAAAAAAABegzAQA
AAAAAAAXoMwEAAAAAAAAF6DMBAAAAAAAABegzAQAAAAAAAAXoMwEAAAAAAAAF6DMBAAAAAAAABeg
zAQAAAAAAAAXoMwEAAAAAAAAF6DMBAAAAAAAABegzFS13LhxIzk5OSoqKvIRJocvJ6GoqEg7KQAA
AAAAVBklJSUpKSkhISHnzp07iztRZqpCbty4ER0dnZmZefPmTa3pkSSHLydBToWcEK0JAAAAAIAq
oKioKCgoKDw8PCUlRYau2bgTZaYqJDk5Wa5RbeaRJ6dCTog2AwAAAADA/VZSUhIUFBQbG5uXl1dQ
UFBYWFiEO1FmqkKioqIe8fuYjORUyAnRZgAAAAAAuN9SUlLCw8Pz8/Nv3LhRUlKitcKAMlMVEhkZ
qU3BghMCAAAAAKg6QkJCrl69So3JAcpMVQhVFRNOCAAAAACg6jh37lx+fj41JgcoM1UhVFVMOCEA
AAAAgKrj7NmzhYWF2gxsocxUhVBVMeGEAAAAAACqjrNnzxYVFWkzsIUyUxVCVcWEEwIAAAAAqDoo
M90VZaYqhKqKCScEAAAAAFB1UGa6K8pMVQhVFRNOCAAAAACg6qDMdFeUmaoQqiomnBAAAAAAQNVB
memuKDNVIVRVTDghAAAAAICqgzLTXVFmqkKoqphwQgAAAAAAVQdlpruizFSFUFUx4YQAAAAAAKoO
ykx3RZmpCqGqYsIJAQAAAABUHeUoMxUUFOTYd+3aNa1fpcu30GZchzJTFUJVxYQTAgAAAACoCHl5
efHx8ZctZEJmtQUOlaPMdOTIkUX2HTx4UOtX8YqLi2/evKnN3Lq1Z8+eXbt2aTOuQ5mpCqGqYsIJ
AQAAAAC4VlFRUXh4+Fkr0njXEpJ0K2uZKTk5WbasnDp1atGiRd7e3tp8eHhiYqLWr+KdP39eXl2v
NFFmevhRVTHhhAAAAAAAXKioqOjixYuqrmRNFjmuIkmfspaZjGJiYhYtWhQWFqbNVy7KTI8cqiom
nBAAAAAAgAuF376PKSAgICMj4+bNm0VFRampqf7+/qpdOmhdbZEOLi8zJSQkXLx4sbi4WJu/devG
jRvSkpSUJI0ykWkhe+jl5XXhwgXT45ykj2zw2LFjsjQwMNDe7sn42sPDQ15dtiCvKC2qzCSvJWsd
PnzYx8cnPj5edVac3LKQjcfFxRUWFvr6+lZ4mSnv+o0L0RkHLyZdissqLinRWsslMiU3IePajZsl
QfFZ8lNrrUiV+VqiHFWV6Oho9VVSERsbe/36dW2BHfIRkp7yUy4XmbC+SuR6vXLlijbjHLkQS+y/
s1lZWTk5OdpMGd1LmSkx81rMVae+W1txiotLr5/CG3//sngQhSZkJ2cVaDMWBUU35bjk6LT5h04l
f/ABAAAAVI68vDxVSxIZGRlaq4UMbLUFZ886eE6TLHV5mUlGvtIYFxenzd+6FRERIS2ySzJ4l4kT
J06sWLFiw4YN7u7uixcvXrt2rb7z169f37lzp/TZZiETGzduzM3NVUuNfHx81qxZIx1kIxcuXJCW
PXv2bNmyZfv27Vu3bvXw8Fi2bJksjYqKUv2d37KQnl5eXnv37pVuFVtm2u0f32TUoeZjPD+b4VNv
2P4uc0+k3Dledd7yo5ENhh9YevhyZn5hrcEeaTl3qafci2OhqfHppY9br4TXMipHVeX777/v0qVL
jx49unfv/sUXX3Tr1u3w4cPaMltycnI6duyYmZlZUFAgE6mpqdqC20JCQmRr2owT5EMycuRINX3j
xg253H/55ZfBgwfLx0A1ykdl9OjRDupQDtxLmWncjks/rjijzVQ8/Zoxyi+8KddPQsZ9+8MBLtF0
9KHWk47kX7+hzd+6FZaYLcclR6fN3282T/69qOQPPgAAAIDKYawlZWdny7g4MTExKytLFqWnp2sL
zp413dRjJEtdXmaSofSyZcu8vb21+Vu3PDw8ZHAt42hVZhKqMCSSkpKWL1++d+9eNXvq1KklS5ao
u5OETMjsgQMH1KyJ9ZfmZNbPz0/N5ufnr1ixQn8keZm2vHPnzqVLl+7bt09OaQWWmU5HptUfdmC3
f7y6iUnGbL2X+H2/VDuAsuq92G/d8dKiWtHNYr/LaRV6h0jnOcf3ni89lZXwWkblKzPpF4FcK5s3
b+7UqZOpKGukbr2TT4WrykyjR4/WL0q51n/66Se5cA8dOiS7IS+k2seNGycXqJoukweozKRfM0YP
TZmp3rD9k3cHa/NVr8xk8+Tfi0r+4AMAAACoHJcvX1aFJJ20qG8FJSYmak2WRtXfmix1eZlJeHp6
rlq1Sn1vTkbrixcvVgNtVWaSkb7x1g1fX19pzMnJkf5Lly49duyYtsBCZmV1Gftr8wbWZSYZxRt7
7tixQz2tqaxb3rlz55IlS9SZrKgyk5yBL2Ydm7EvRJu3CIrPajTyoH5Dk/+V9GVHLm/2jUnK1FqK
S0oOBCTK6M4nJHWRV8TBi0nqizmnI9M6TPcZu/3SpbgsGQFKn+tFpedFXuVYaOqSw5ePh6Zm5BXK
tDTKIrWR0i3euhWbli+ry4RsSrXvu5AgY0hp0VdffjRStmzpfutk+NU2k49M3BkUkpBtfC3h/A6X
zz2WmUR2dnbHjh3Dw8MLCwuPHz+uX/1JSUmBgYEyIReEtMtSY5lJrle5grds2SIXa3BwsF5munbt
mlzrGzduPHz4sKyiGo3kE/Ljjz+qT0J+fn7Xrl310pJcrOPHj1fTAQEBQ4cOVdNl4pIyk3qP8gtv
7j2fIG+fXITyvnsHpyzytLxfls9qel7hibDU7GtFO8/Gy8UQHJ9t2YbGxvt+57VkvGZUB8VYZrJ5
sV2IzpD9UdMiMDZToqZDE7JXeV9Z6R0Zk6bdp2N9AVeOpqMPzTsYXmfo/ou3981UZrLeVe+QFH3a
NyJNfQBFVGqefFLUtJEcjpwZOfnyFsisvY+wyLt+Y9vp2PmHwqWz+mBan3x7n1PH14CR/sF3ckWb
b67Q242/oBTrkwYAAACgopnKTPoA9ubNmzKttd6PMlNUVJS0q1uHLl26JNOZmaXjL1VmMpV74uLi
pFF+Sh+ZkGG77Lzu4MGD0mjz7hPrMpO7u7uaVnZZyERZt7xz585Nmzap6YoqM6Xnln7rJDLF9tf2
xNwDYY1HHRrlfrH/yjNNRh0KiLGcweISWUsah24KGLMtsNHIgzK+lfZVPldajvP6ZpHvLv/4nIIi
6aO+zzJ+x6WW473Gbr/Udd6JvstPfzrdRxplkXTIzNfKIlv9YnsvKa0CyqhV2sftuPTZDB8ZqEvL
oI0XZLMjtl78dbV/3aH7ZWwsjTImbD7GU1aR4aXxtcq0w+Vz72Wmw4cPf/PNNzdu3JBromPHjvpD
kaTPiBEjZCIvL0/ajV+aKykpmTp1qqw1f/78gQMHDhgwQJWZrl279uOPP/7xxx8LFy7s27evWt1k
w4YNa9asUdOhoaGdOnXS65ry2ZNtqml5iZ49e6allbky4pIyk3qP5F2bvDtYLpIGww/8tsZ/wLpz
I7derDds/2bfGOlz9kp6q0lHOs858ef687+vPScXw25/7SZJm++76VoyXjNqLcVYZrJ5sa07EdVl
rvbtwpKSWx9P9d55tvR15aJVLyo7U3/YAe/g0s7WF3DlaDr6kE9Iqpy9jjOPFd0sLf0Yy0w2d/WP
tefGbb8kE8XFJc1Ge74/zksVZOTwB23QbvXUzdgXIh3k4/PFrGPtphxNzyu09xHOu36j/VTvznOO
S+e2k4+qRtPJd/A5dXwNGOkffCdXtPnmCpu/oITNkwYAAACgohm/NCfOnTsno04RGBioNVlU8pfm
hAylly9frspJO3bs2LZtm2pXZabTp0+rWeXq1atqI4mJiTKxcePG7VacLDOpopJOLzOVdcs7d+7U
N1VRZSYZt8vwTL8PyCTmal6dIfvVCFBM2hX09cLSL1WpQd2cA9oZn38ovNu8k2r6m0W+28+UPhBL
HwEGxWfJSC/O8kyWGzdLvpp7wpky07DNAWrEK7MybPa/kl46c+uWDFxlTKim9e/g6K9Vjh0uh3JU
Vb63+MOib9++X3zxRXBw6ZebnC8zyeeqU6dOcg3JUrnaRo4cqcpM0t65c2fpJtPR0dETJkywfr74
kCFDTp7UjtfX17dXr15qWly+fFm2r1edxowZY/yiqZPKcUJ0pjKTu1+sTBcXl8iwX690/Ln+/KCN
pdPqcl1zTHvU2brjUe+N9ZKr1977brqWhOMvzdm72FKyCmoP8VDXsLyK24iDeddvpOcVNhp5UO+8
yudKuylHZcL6RSuHKjPlX7/RatKRJYdLi/p6mcneru44E9d+aunbHZaY89HEww2GH4hMyZXdbjP5
yN5zd5yl8KScukP3R6WWPmBP3ilZXd4pex/h46Gp9YcdUOUtWfHnVWevWab1k+/4c+r4GjAylZkc
r2jvzbX3C8reSQMAAABQ0YyPABfqj80JmdCaLCr5EeCKl5fX6tWrs7OzpcOlS1p1QpWZjhw5omYV
/dYnGfLLhOM/jWfkfJmprFuuvDJTgZ0y086zcTIw02Zu3QqOz5bBdtHNYjWo07+bcyAgUQaQatq6
zLTiaOQPS/8u6clozZkykz66U2Tom5xV4BmY1GGa9+htpV8rE9ZlpnLscDmUr8w0f/784xY+Pj5L
ly7t3r37lStXnC8zrVu3bsKECaqb8Pb2VmWm+Pj4L7/8cu7cuXJ92/zGnOjVq5f+8ZAVf/jhBzUt
oqOjZfv6h1N2csuWLWraeS4sM11O1m6skwtp0yntJpR5B8MHrDsnE+pyzS3QimJy3cr7K++yvffd
+lpyXGZSszYvtm8X+a7yLv3TfpN2BQ22lC28g1NajPU8H52hcigwSTZyveimzQu4Eqgyk0zIz/rD
DkSl5ullJnu7mppd+hlMzLy24WT0sC0B3y/1k3Men54vZy8j745raf2JaFUJUuRjm5VfZO8jLC9d
Z+j+4VsunolMN5aw9ZPv+HPq+BowMpWZnFnR+s219wvK3klT3QAAAABUqPDwcFVLEkFBQapRJrSm
s2cd11akQwWVmVTxaO/evUuWLFE3fAhVZlq1apV+D4c4dOiQ9Ll27VpxcfHKlSuN33ASx44d0ys+
Js6Xmcq65cooM6kvzYUl3vGX7IuLS35b438iLFUGYGrcqMjwTDqnZBeoQZ26tUE4LjNN3RNs/ALO
Lv94m2WmLb4xxjKT8Uk38w+FNx/j2Wn28Yk7g2Qk7KDMVI4dLofylZlMb/zYsWPnzp1rKjMdOHDA
Xplp4cKF8+fPV91EQECA/mwm+QDI0p4WGzdu1K9FXZcuXaSPmr5w4UL37t3VtLh06VLnzp31p5Qt
X75crlE17TwXlpn090gupK2Wm1OEsczUYPiB2ztbSi6MY6F2L1TTtSQcl5kcXGwbT0Z3m3/yxs2S
98d5nQi7Ki3ulm9Uyc4bk5p93fpFK4deZhLyieu12DckQSsz2dtV6dll7omdZ+Pk9O44E7f08OU/
15+XiZ4L/q4oKbP3h8nvBG3mNnsfYRGRnDNmW2Cz0Z6SBYfC5c2VRv3kO/k5tXkNGJnKTI5XtPfm
2vsF5eCkAQAAAKhoRUVFF28/hsn6biZZ5LiKJH0qqMwkI24ZOMtS419zU2Um4eHhof40nuyAzPr4
lA4uhOy5zJ48eVIG+zdu3FCz/v7mQZaiyky5udr/j+6gzCTKtOXKKDPJiP2LWcdkqK/NW1yIzpAx
W3hSzr4LCW0nH9VH9f5R6fWG7ZcRnWlQ57jMtPZ4VA/DqHWxV4SxzKTfNCFjUWOZKfb2KP1cVEbj
kQf1p0dN2xPioMxUjh0uB5eUmaZPnz5r1ixVZpKrUDVu3LjRXplp69atw4cPV92EbE2VmeSTlpSU
JBMlJSVyPXXp0sXX19fS5W8//PCD+o6eSE5Olg2mpGhPmdm3b9+vv/6qpsWcOXP0L5c6rzLLTNJH
fzh9Vn7p++7gQjVdS8JxmcnBxZaafb3OkP2ySx9MOCxblpZjoamtJh3RXzT/+o2LsZkya/2ilcNY
ZkrPLWw+xnP8jkuyJ3J09nZVzD8UPnjjhffHeckOB8RkvjfWa8imC0st37kz2nQqRn86lfC6lHw4
KNneR/hqznV1+MUlJb4RaQ2GH5D+MquffCc/p64tM9l7c+39gnJw0gAAAABUgqKiIuM9TTppvGsJ
SbpVUJlJHD58WJZeuVL6fRdFlZm8vb23bNkiE8qBAwf0rxwVFxerPzynk876DR8m6oapJUuWqL8F
77jMVKYtV0aZScjoq87Q/at8rsjwWGZj0vI7TPP+fqmfDBFlsNpo5EH1tGNZ+uOKM2rAZhrUOS4z
xVzNqzt0v/qTW+l5hTK8VKO4vOs3pMPBi6Ulksz80nabZaYDFxObjDokQ2WZTskq+GSa98it2kPm
5UV3WZ4Arb9WOXa4HMpXZpKrLckiPj5eLspOnTrJFXPt2rWOHTuqByfl5OToz/C2LjPJVf7FF1/I
R0X1/OWXX1SZ6eDBgz179pT+Mp2bm/vtt9+anjomxo4dK6+ozVge1bRq1SqZuH79+u+//75jxw7V
LoYOHWq9+l1VcplpzLZA+cjI9Tlu+yW5VmVFe++76VoS+jVjpJeZHFxsovdiP3mV6Xu1P8uYW3Cj
xVhP9Xjp4uKSYVsCjA+Eur9lJrHzbJzshkQOx96uioCYzAbDD3w44bCc0hs3S+QAZTb0zr/EJ+Tk
1Bu2/0RY6fbV1rb4xtj7CLv7xTYf46n+Gp38fH+c15EgrcykTr6Tn1PXlpnsvbn2fkE5OGkAAAAA
Ko2MdmUQfdlCJtTg967usczkmIyvV65cafwikSoz+fv7y4SM+iMiItLT061rPTJmj4qKkhF0Vtbf
f/naJlk9LCxMfmrzd+P8lnUVWGYSHhcSZVhYf1jpaFNGa98v9dNvGDkQkCgDwo4zj7Uc79Vp9vHE
zNLn1zio2liXmWR6/YloGbtKn9aTjkzaFdR9vvY46mGbA+oM2d9jwamPp3rPPRBms8wkgz0Z9clI
9dtFvrIb47ZfkrHiocDSke2f68+3mXxEhrvG1yrrDpdD+cpMHQ369u27Z88edc3Nnj37iy++GDx4
8I8//rh+/Xp7ZSZp3LFjx5dffqkKTNJTlZmuXbv2xx9/yPSff/7ZuXPnSZMmGa91ZdeuXQsXLtRm
bt2KjY3t1avXgAEDvvvuuzFjxuiPDJcPYdeuXZ380BpVZpmp4YiDv6w+KxdSq4lH3hvrdSFae3i+
zffduuKjXzPavIVeZnJwsYnNvjHSzfgN02OhqU1HH/pkmrfsieySulOmipSZ5OKSD7LsiSqs2NxV
UVxc0mKsp/507f4rz340sbTkZM39dKzbiIPywZH+fZefVn/MzuZHOO/6DekmL/fV3BPyW+XXNf43
bpZu0XjynfmcurbM5ODNtfcLyt5JAwAAAFDFVVyZScbgS5cuVX9sTqeXmbT5B0HFlplEQdHN4Pjs
E2GpMVfzTIPMrPwiv8tpQfFZamBZVjLmjEvPT8kq8I1Iy75WtNI78pfVpbfkCHmhoLgs2biMAFWL
TTJuPx2ZdiE6QyZkvHr2SroalF4rvCnbtH4Izj3u8F3dS1XFWklJyeXLly9evJiff/fCRFpa2oUL
F+SnNm9RXFys7iSMiyst8FnLyMj49ttvC24/nExcv349KCgoJibGWF49cuTItGnTtJmycO0JcUDe
ehn2F5eUhCXmyCUhl5a2wMKZ993eNaOzd7GJTadivpxlrk7mFBSdiUw/F1XaX2uqqu59V9PzCk+G
Xw1JyNavGnsf4eLikouxmT4hqcbSjOnkV/Tn1JrNN9fBLyjxAL2/AAAAAHQVUWaSobePj8+WLVsW
L14so2yt1YIyU6WScWadIfuPBqfIuE5GmO2nepv+VvoDp9KqKi40f/58Dw8PbcaWkpKSAQMGOH5W
vz2VXGbSZirRtcKbchnLpav//TI8NB6+X1AAAAAAKqjMtHXr1p07d0ZFRWlNt928eXPVqlUBAQHa
/IPgAS4ziZ1n41pNOlJ/2IGPJh5e5Blx0/IE5QfXg1hmys7OHjZsmPVXQ3VBQUFLlizRZsrooS8z
BcRk1hu2/8/154sf8EsXNj1kv6AAAAAAVOizmR4OD3aZSXloBm8PYpmpQlXaCSkuLlFPGqp8FJge
elSXAAAAgIcGZaa7ehjKTA8NykwmnBAAAAAAQNVBmemuKDNVIVRVTDghAAAAAICqgzLTXVFmqkKo
qphwQgAAAAAAVQdlpruizFSFUFUx4YQAAAAAAKoOykx3RZmpCqGqYsIJAQAAAABUHZSZ7ooyUxVC
VcWEEwIAAAAAqDrOnTt3/fp1bQa2UGaqQqiqmHBCAAAAAABVR0hISGZmpjYDWygzVSFUVUw4IQAA
AACAqiMlJSUiIqKkpESbhxXKTFUIVRUTTggAAAAAoOooKSkJCgpKSEig0mQPZaYqhKqKCScEAAAA
AFClFBUVBQcHR0REZGdn37x5U2vFbZSZqhCqKiacEAAAAABAVVNSUpKSkhISEnL+/PmzuBNlpiqE
qooJJwQAAAAAgAcIZaYqhKqKCScEAAAAAIAHCGWmKoSqigknBAAAAACABwhlpiqEqooJJwQAAAAA
gAcIZaYqhKqKCScEAAAAAIAHiLNlJhnwo6JlZGRopxsWckK0UwMAAAAAAKo87mYCAAAAAACAC1Bm
AgAAAAAAgAtQZgIAAAAAAIALUGYCAAAAAACAC1BmAgAAAAAAgAtQZgIAAAAAAIALUGYCAAAAAACA
C1BmAgAAAAAAgAtQZgIAAAAAAIALUGYCAAAAAACAC1BmAgAAAAAAgAtQZgIAAAAAAIALUGYCAAAA
AACAC1BmAgAAAAAAgAtQZgIAAAAAAIALUGYCAAAAAACAC1BmAgAAAAAAgAtQZgIAAAAAAIALUGYC
AAAAAACAC1BmAgAAAAAAgAtQZgIAAAAAAIALUGYCAAAAAACAC1BmAgAAAAAAgAtQZgIAAAAAAIAL
UGYCAAAAAACAC1BmAgAAAAAAgAtQZgIAAAAAAIALUGYCAAAAAACAC1BmAgAAAAAAgAtQZgIAAAAA
AIALUGYCAAAAAACAC1BmAgAAAAAAgAtQZgIAAAAAAIALUGYCAAAAAACAC1BmAgAAAAAAgAtQZgIA
AAAAAIALUGYCAAAAAACAC1BmAgAAAAAAgAtQZgIAAAAAAIALUGYCAAAAAACAC1BmAgAAAAAAgAtQ
ZgIAAAAAAIALUGYCAAAAAACAC1BmAgAAAAAAgAuUrcw0b968thaRkZFaE+6rbt26ydsh74s2X/V4
enqqa+bq1ataUwW4efOmepV169ZpTRaff/65NC5evFibd8LUqVNllR9++EGbBwAAAAAAzilbmWnc
uHG1LMLCwrSmClBUVJRvUVJSojVVivv1uveiZcuW8nbI+6LNV4oynahdu3apayYlJUVrqgA3b95U
r7Jo0SKtyaJRo0bSOHXqVG3eCUOHDpVVPv30U20eAAAAAAA4pyqWmVavXq1eJT8/X2uqFPfrde/F
fSkzlelEUWYCAAAAAOARQZnpbw9imen06dMnTpyo5O8wVsEyU3FxsZwHERsbqzVZUGYCAAAAAKDS
UGb624NYZrovqmCZyR7KTAAAAAAAVJpKLTMVFhYmJyfHxsZev35da7LFmSpGcXFxRkaGbEq2qTXd
jWwtLi7OwUvfY5np5s2biYmJcoA3btzQmu5GjiIhISE7O1ubN5CNpKSkyAHeY82rHCdKespeyavb
O5B7LDOp7SclJRUVFamWinPXMlNOTk5MTIy8Bfpzpu5aZrrrhQQAAAAAwKOpMspMN2/e3LVr19df
f123bl21unjvvfcmTpwoI3ytk8WmTZt+/PHHDh06qD59+vSR2TVr1miLLTIyMqZOnfrBBx+oPrVr
15b+GzZsuHbtmtbjTomJiWPHjtX7i48++mj+/Pk5OTlaD+de18TX11f6DBgwQKZTUlJGjhzp5uam
Vm/UqNGQIUPi4uJUTyPpL2vJujK9c+dOOQnSf8SIEWqpEhQU9Ntvv+lbE1999dWWLVvkNGo9DAYN
GiQblMPX5g3KeqLE+fPnZWv629SgQQPZE9kfbXG5TpSxzJSQkDBw4EDZrGqRY5QTYv2Nv+vXr8tm
xeHDh7Umg6KiIrXU09NTa7Lo37+/NO7du1ebt7BXZiouLt68eXPHjh3VnohPP/1Ujk7a7ZWZnLmQ
AAAAAAB4lFV4mamwsLBfv35qLWuNGjUKDw/Xut66NWnSJG2BgbEKExAQ0Lx5c23Bnb744gv9fhnd
6dOn69Wrp/W4U9u2bfXbiO76utZU9aRp06ZyKt5//321ilGDBg1Onjyp9b5N+ssiWXfDhg2qmzC+
0Nq1a2vXrq0tuFOvXr1yc3O1frfZewR4WU+UWLp0qdbjTrI/GzduVH3KfaKEt7e3OnyTunXrHjhw
QOttkZ+frxatW7dOazKQK0otXb16tdZkUadOHWl05hHg165d69Onj2UbZgMGDBg0aJBMmMpMTl5I
AAAAAAA8yiq8zLRq1Sq1SocOHbZt2xYYGCjrent7//nnn6r9q6++0rreuiWLjhw5MmLECLVo//79
MhsSEqKWJiQkNG7cWC0aNWrU4cOHg4ODd+7c2a1bN9X4ySefGL8alp6e3qJFC2l3c3ObO3euv79/
RESEvPQPP/yg+g8fPlz1dPy6NqnqSYMGDdq1aycTsg+bNm06f/781q1bv/vuO8tmSl/XdE+TqrNM
mDBB1UR69+49adIkeS211NPT07JeLVk6bdo02dWAgIB169bJcan2n376Sf9ul2KzzFTWEyVkqVok
Z2zFihXnzp2T07VgwQL9pippkW7lPlGiWbNm8rNnz55btmyREyU/5fDVIjne0NBQbYWKLzMNGTLE
soFaTZo0mTdv3okTJ+RUSx91G1f9+vXlp7HM5PyFBAAAAADAo6zCy0zqe0ktW7aUsbrWZFFSUjJ4
8GBZVKdOHdPXuOw9+qd///6q/ejRo1qTxY0bN8aMGaMWLVmyRGu9dWvfvn2q0cPDQ2uyKCoqUnv1
/vvvG6s25XvkkPjtt9+MT+opLi7W7/r5448/tFYL/XaeFi1aBAQEaK0WhYWFqmbUoEGDEydOaK0W
mZmZPXr0UCt6e3trrRY2y0xlPVE5OTlqx1q1ahUVFaW1Wpw5c0bdXfXTTz9pTfdwov766y9jeevm
zZsTJ05Ui3r37q21VnCZyd/f37J26cFevnxZa7Xw9fVt2LChWmosM5X1QgIAAAAA4NFUsWWm4uLi
li1bNm3adNq0aVqTwd69e9XWTKUNm1WM6Oho1WgqqSgFBQXqrqJWrVrpA/6ZM2eqVbKyslSLbufO
nYMsjC9RvupJw4YNrbcvB65uQapTp87Vq1e1VkOZyfqpQwcOHFCLTLfeKHLC1dL+/ftrTRbWZaZy
nKhNmzapVbZv365ajH755RdZJHuu9y/fiWrSpIn1l/5u3rzZvn171UF/UFeFlpnUd+KEl5eX1mQw
e/ZstdRYZirrhQQAAAAAwKOpMh4Bbs+WLVvU1pwpM61du1Y12nvpefPmqQ6JiYmqRf++3qZNm5y5
2aR81ZNJkyZpTXdyd3dXHYy3wKgy0wcffGC9P6NHj1b9k5KStKY7ff/997LUzc3N+Cxw6zJTOU6U
uvupefPmNv96mq+v71QL/aaz8p2oGTNmaE130k+UTKiWiiszyWlXj13v0KFDcXGxajRKSUlR2zGW
mcp6IQEAAAAA8Gi6D2Wm/Px8f3//efPmqefdCGfKTOomlAYNGmRmZubYsmPHDrWWn5+fWiU8PFz/
o2mdO3fesmWLzUdf68pXPdm3b5/WdKfIyEjVYebMmVrT7TLTr7/+qs0bfPXVV7Logw8+0OatzJo1
y7K9WleuXNGabJWZynGi1CPMjV9bc6x8J8rm3UNCP1F6wa7iykxyAVhWrTVy5EjVYk3d7WUsM5X1
QgIAAAAA4NFUGWWmGzdueHt7T5w4sXfv3h9++KHagpEzZSZ1L48zjN9Hc3d3b3D7z+cr7dq1Gz16
9MmTJ2WvtE63la96cv78ea3pTgUFBaqD8fnQqsw0atQobd6gbdu2sqhHjx7avJXNmzdbtqc9jVux
LjOV9UQVFxer2SFDhqgt3FX5TlRQUJDWdCf9ROk7UHFlJrluLave8WgqE3UCjWUmUaYLCQAAAACA
R1OFl5mCgoJkxK7WUtzc3Dp37jxq1CgZ/KsWZ8pM+jOw69zN3r17tXUs4uPjp0yZ0qZNG7W67pNP
Prlw4YLWyaJ81ZPw8HCt6U4lJSXqz7QNGDBAa7pdZjJWhXSqYNS3b19t3oqHh0fp69WqdfLkSa3J
VpmprCdKr+nY+/aftfKdKP3RSyb6iRo4cKBqqbgyU0hIiGXVWhs2bFAt1v744w/pYCozCecvJAAA
AAAAHk0VW2ZKS0vTvxn3888/79u3Ly4uTn8mjv73+50pM/Xr109a2rVrp82XUUlJSXh4+Pr163//
/XdVehBubm7x8fFaj/JWT44dO6Y13SkjI0N1GD16tNbksMzUoUMHWfT5559r81b0JwQFBgZqTbbK
TGU9UfJ2qAKNsRzmWPlOlP4dPZP09HTVYfz48arFcZkpMzNTLS1HmUkuP8uqtaZPn65arHXt2lU6
WJeZFGcuJAAAAAAAHk0VW2ZasmSJ6r9582atyaBMZSb1l/gbNGhg88nNZVJQUDBlyhT1EjKhtZa3
erJx40at6U4BAQGqg7Hw4aDM1KdPH1nUsGFDewc4fvx4y/Zqpaamak22ykzlOFHqDp2uXbtq83dK
SUnZaqE/kKh8J2rbtm1a050uXLigOuhFJcdlpsDAQLW0HGWmwsLCevXqSYvNx2OJkpKS5s2bSwd7
ZSYjexcSAAAAAACPpootMw0YMEA62yud6H9H35ky086dO1Wj8StjRosXL/7mm29++ukn/bWGDRv2
22+/LVy4UM0aSR91m1W/fv20pvJWT7p3715i66+PjR07VnXw9fXVmhyWmRYsWKD6HzlyRGsyuH79
uqootWnTRmuysC4zleNEqaeG16lTx+YtOStWrFAb1Mtb5TtR9h4xrv+JvUuXLqkWvcwkL61ajDZs
2KCWlqPMJOT9kpb69evbfIz38ePHSzd9Z5mprBcSAAAAAACPpootM6n6hdudf4NfuX79eufOndXW
nCkzZWdnqyf4dO/evaioSGu9LS4uTj2h2fh07W+//VZa3nvvvcLCQq3pNnl11d/4TbHyVU/EiRMn
tNbbYmJi1F0zLVu2ND4i2kGZSf+Da926dbM+XevXr1dLZ8+erTVZWJeZynGijh49WrppWzsmp+6z
zz6TRR9//LHWdA8n6uzZs1rrbVeuXFF/xK1Dhw56tU5eVNWM5PpRLTpZ1KpVK8vGyllmWrdunWXt
0oM11QfltH/99ddqqbHMVNYLCQAAAACAR1M5y0zTpk2TQb49a9asUf31G2H0FiU0NLRbt25qkTD+
6TQhW1Dt0dHRWpPF7NmzVfvPP/+clpamtVr+fFj79u2lvXbt2gEBAVrrrVuyk6r/4MGDMzMztVZL
IWbgwIFq0fbt27VW+69rk7F60rBhQ29vb71mcf78+ffff18tWrt2rWpUHJSZxO+//67W+vHHH3Nz
c1WjbHbjxo2qhtKkSRPTPTjWZSZR1hN18+ZNveQ3a9Ys/S6n/Pz8YcOGqfa5c+eqRlHuE9W4ceMT
J06oEyU/z549qz+6a9++faq/0rFjR2mUoz516pTWdOtWTk7OL7/8otrlp+yGtsDCyTKTbOSDDz6Q
RiHnTa8c5eXl/fTTT6pdGMtMZb2QAAAAAAB4NJWzzOSYDPhV/6tXr+p1hK+//lqG67IFmVAVgf79
+6tFnTp1WrlypX7rjbu7u2rv1q3bzJkzd+/erdoLCwv1m03q1av3/fffyyBffQdKMT3KJyEhoXHj
xmpRo0aNevbsKf1lrYYNG6pGWdd4q5G917VJr57o9bIPP/xQjqh169ZqVvTp00cv2SiOy0xpaWnt
2rVT69avX192+Oeff37vvfdUi5y0gwcPal1vs1lmKuuJEhEREc2aNVNLZSf79u0rx6K/dMeOHfPy
8rSu5TpRrVq1kmNRa8m0bFy/KUkMGzbMdGPRmjVrtGWW62T69OkDBgxQxbuRI0d+9dVXMlG+MpM4
efKkuoVKyHmWcyWnWrW4ublNnjxZJoxlprJeSAAAAAAAPJoqtswkTp8+bSwoKC1btty7d6+MzNu2
bas1Gb6BlZiYqI/qxYgRI1S7uHbt2qhRo2rXrq0tu002uHXrVlOpQly8eFH94TCT+vXrT5gwIScn
R+tn4eB1rellpsjISNklNW0kqxcUFGi9b3NcZhIpKSl9+/ZVWzCSc2jzT9rZLDOJsp4oER4ert/T
ZNSnT5+rV69qnSzKcaLkjZb3988//1Sr6ORSmTlzpvWXBIuLi21ebJMmTSoqKlLvabnLTOLkyZPW
l+UHH3xw9uxZtcOmR4CX6UICAAAAAODRVLYyU/lcu3Ztx44d06dPHzhwoIzJPTw89IpSXFzc5MmT
Bw8evGDBAuODhGJiYmbOnCn9x40b5+XlpbXeJktXrVo1atSoQYMGzZs3b+/evQ4eElRSUnLixIll
y5bJpqT/7Nmz3d3dU2w9/lk4fl0jvcwUGxsrs6GhobInQ4YMGTZs2OLFiy9fvqy6lYPs8KVLlxYu
XDh8+HDZkylTpsieXL9+XVt8J3tlJqVMJ0oUFxf7+vrKGZD+ss0NGzZcvHjRZk3K+RNlJJsKCAiY
NWuWvOMjR45cuXKlzYeO68LCwpYuXTpixAg5q3KF3MtZtSaX5YEDByZNmvTXX3/JUWzfvt14x5a1
Ml1IAAAAAAA8giqjzPRQMpWZ7hfHZSYAAAAAAIBKQ5mpnKpImemu38IDAAAAAACoHJSZyqkqlJmu
XLmi9mHmzJlaEwAAAAAAwH1Cmamc7m+Zaffu3T///HOTJk3UPjj/dCQAAAAAAIAKQpmpnO5vmWnG
jBnq1cWoUaNsPqUbAAAAAACgMlFmKqegoKAZFpmZmVpTJfLz85s3b97mzZvDw8O1JgAAAAAAgPuK
MhMAAAAAAABcgDITAAAAAAAAXIAyEwAAAAAAAFyAMhMAAAAAAABcgDITAAAAAAAAXIAyEwAAAAAA
AFyAMhMAAAAAAABcgDITAAAAAAAAXIAyEwAAAAAAAFyAMhMAAAAAAABcgDITAAAAAAAAXIAyEwAA
AAAAAFyAMhMAAAAAAABcgDITAAAAAAAAXIAyEwAAAAAAAFyAMhMAAAAAAABcgDITAAAAAAAAXIAy
EwAAAAAAAFyAMhMAAAAAAABcgDITAAAAAAAAXIAyEwAAAAAAAFyAMhMAAAAAAABcgDITAAAAAAAA
XIAyEwAAAAAAAFyAMhMAAAAAAABcoAxlprwbxX5peYeTsz0JIYQQQgghhBBCCLkzzpaZ8m4UH0nJ
OXs1LzjtWlh6ASGEEEIIIYQQQgghxjhbZvJLyztzNc+0MiGEEEIIIYQQQgghKs6WmbySs4PTuY+J
EEIIIYQQQgghhNiOs2Umz+Rs05qEEEIIIYQQQgghhOihzEQIIYQQQgghhBBCXBDKTIQQQgghhBBC
CCHEBaHMRAghhBBCCCGEEEJcEMpMhBBCCCGEEEIIIcQFocxECCGEEEIIIYQQQlwQykyEEEIIIYQQ
QgghxAWhzEQIIYQQQgghhBBCXBDKTIQQQgghhBBCCCHEBaHMRAghhBBCCCGEEEJcEMpMhBBCCCGE
EEIIIcQFocxECCGEEEIIIYQQQlwQykyEEELIg5TwtPzoxNT4BE0iAAAPKfVfOvlPXnRiSvjVPNN/
EAkhVTOUmQghhJAHJuFp+fEJicnJyampqVcBAHgEyH/y5D988p8/+Y+g6T+LhJAqGMpMhBBCyAOT
mKSrKSkp6enpmZmZ2QAAPALkP3nyHz75z5/8R9D0n8UKyr6QpLH7zv+44bhEJmTW1IEQ4iCUmQgh
hJAHJknJyfJPbfk3d25ubh4AAI8A+U+e/IdP/vOXmJxs+s+iy3M6Luv7tT5uE9xNkcYz8VmmzoQQ
m3mAy0zBV/M9LsXKT1N7Vctd99MlBxKSdk02cimVbywTQsjDnNTU1MzMTPkHdz4AAI8M+Q+f/OdP
/iNo+s+ia3M6LqvdnH2mApMeWWSz0nQ0PEkGYioHg+MvJOWYOpQjLhkhPnBhSPvQ5AEuM52Ny/zv
LzP8YtJN7VUtd91PlxxIQFKObOR4ZMX+5iWEEHJ/c/Xq1ezs7Ly8PO3f3QAAPALkP3zynz/5j6Dp
P4uuzXdrtPuYPpq5Z83pKxeSck/HZc33CW0yebtq/36tj2kVSc85W2v/NqvhX/MkdX+f/e4vM/5c
cyA07ZqpW5niqqFuUGr+iM1H24xd8cWU9St9Lunth4LjR245OtPj9MXkXL2xz+JdB4Li9NnKjzND
2o2+occup5gaSVXLA1xmks/M1rMRVb/Yedf9dMmBUGYihJBHIZSZAACPoEooM+0LSVK1JMm6M1HG
ReP3X9AXWT+nqeecrQPXHlLToWnX1p8KqfXrzKVHA/QO5YirhrqD1h1qPWbF5tPh8w/51/5tlvvZ
y9J4KDi+6eCFI7cc/Xque9eZm0MtPXecv/Ldgh36ivclzgxpP5mw+h7PLamEVGyZSa7jCTuOL/I6
72+4vXD7uciJO0/MOXD2xBXt10RI2rUVPoHyKVp29KJ8nFTjgaC4KbtPTdl90jvC9ldw5bMnawWm
5MqHWSbkopQLTrbscSlWPiry8R637djKY5f0QrI0bvQNlf2ZtOvk3sAYfTt6+0a/sDNxGTKtL7rr
Pjjz0qb9lMPc4Bs6bntpBzlw6w7lOxDKTIQQ8iiEMhMA4BFUCWWmsfvO67Wk7RfjjkZenXIocNO5
0tHWKr9IfZF0M64lMZaZVL6Ysv7PNQdlwubAzXrweyExe/6hc2PcfWTgLKNCabnrEFLiYBircj4x
u/6AOfr4etB6z2/musvEyC1HR2/1longq/lNBy+UUblsqtO0DUfCHD3p3MmhvTND2jOxGZv8ws4l
ZMnW5MxIH7WuaUhrPRjffDq85Yglf609uP+SdtfVXQfs5L6kAstMwzYelqv291X7Px6/6sORS+Vi
ksZRW466/Tn315Ue8ml0+2ve7oDSOvGllDy5ngasPtBm7Ar5sEnL3IP+/3979/5cdX3ncfx/cos7
q5Z2te7a6biu3XG7t+ns7LZ1Z7e61TgqWLBo8YZWoNwaRCRBoF5A5SoxSrlDwGTDJVEQUO4SLhGa
mU67032Hb/rd0wMHTuyb63k85vnD4XCSnNjzNf28JonFw34w/a0RTZPidVm8z8ridRlvtenT43F5
xI14h6Nebfvu5NdvbJr8/emL/uMXb/9o9rKvPDgpXvTF4/9r5uKvPzYj7vzetIVx/7wNQ9fhw63v
xv0Ptaz4u2fnxpt/68nZxf31PId6PnTV84x3eN+sJfGPJa754vJO+UTMTJLUCJmZAGhAl2Fm+uH8
teWWVHTfgnVr9w7+2Npzbd3lnfGwyreKqmambUdP3zqmedzZg955D25Vh9+uQ/13jJv1t0+3xAnx
9sdf+ucXfxmPuegRMqp1jC2Ls3Z80B2fD/2Cp/joI0dNjxsvLtv0vWmL4j2v3n003mE8gZa1Ox5q
ebd42Hmr/2hfz5F20Yef3Da2+e5nWuP+OGvH/c3vd8X9lUfa8x7Gn35r7S2PTot/RLNXb6v1GF0N
XaqZqW3ngXi5FINovNTitTi1beuqjw/f8MDExf+zr3hMXI3feX5e3CiutPtnLe09e3+8auPlHi++
4mHPL9nwVz95qbhdWdW1F+8/7uzpG4iL7T9nvlM8Jl64cW3HjfgQd46fU77PuELisowby7d/Fs8z
LrC4He/n28+2Ftdnnc+hng9d9Tx/8vqq4gFPvrk6/o1w7gO+3CdiZpKkRsjMBEADuvwz07cmLy2+
9abz8BeVvxf8vDPT30+Y99w766OfLlwdJ8qbHp4SB8xaB7eqw++CTR+NaJoUp7m4HYfof5u6sPvI
6YseIWsdYytrWbsjTpTlH5dt+zTe1Y7Pfx3v/59+tiD+Kg68U1ZuiTe/+5nW+FjlI6sa1tG+niNt
/DOJx7ywdGNx/4vLNo0cPX3b0dPlkfYCh/Hyh+bqPLDrinSpZqaJyzd/5/n55R+37D+55cDJGe2d
d45/pbwzro0bzr7QiyutfInM29AzctT0t7v2Fs1Zsz3+Nl52cRU1v98VvfTB4Aur6tp7r+dg8eb/
8ML8ySs6ittPvPGreDUXt6O4ktfvPRbX2zefePnBOcvjnvh3wb9MfK18QLw6i+uzzudQz4euep5L
uocuxdmrt8VFcu4DvtwnYmaSpEbIzARAA7oMM1PlD81Ff/n8W/cvWBfdNXV55f3n/aG5vx43Kw5r
RT9e0F75A1znHtyqDr8ffHT4zx6Y+N8vL124dXecN4s7L3qErHWMrSxOrN8YO7P848qdB+JdxXuO
2719A3GwLW5PWbnlyTcHf7V5PGDC4g0LNvYW+1fZsI729Rxpi5mp89DQwtB95HS8bbyH8khb6zAe
Dy5npgs8Rle8SzUzPf7aqu9PX1R1Z1wMxTcBFsX1Fi+FDfv6iiutvBqntg1+81tcrpVt3Nf3Ttfe
+2YtiX40e1k8rOraK3+UNF7KU1YOrqdR+VLu6RuIi+ero6bd9XTLI3NXxjVZXOSj571XzqtR8/td
xfVZ53Oo50PXep61ZqYv94mYmSSpETIzAdCALsPMVPkrwKM7Ji55tWNvFDcq77/wrwCvrNbBrerw
G7X1HGyas+KWR6dF8SZxKrzoEbLWMbay1zs+jiNt+cdFH34yomlS1YQUp8i/eWpO16H+N7bs+tro
GfE84/2M+8M3TxUN62hfz5E2nsmNTZMrn0n8U1qwsbc80tY6jMcjy5npAo/RFe9SzUw/f7fj7mda
yz+2rts5d93OWau6b3/8pfL19Fbnnq88OCleiFVXWrzCbhvbXD6s6/AXS7r3VV0P0bDWmbc79/zF
w1Pae4dW1cfmtxcX+c+WbrpnwqvFndFTi9YW12edz6GeD507M9X6RMxMktQImZkAaECXYWaKftC6
upyT7pkx9LuK4kZ5571zB7/rp6p/rTEz1Tq4VR1+4xhY3O7tG3ijY9eNTZNb1u646BGy1jG2sjW7
j8bbrvnDCXHS8s2V339UNH7Rmrg/bsRhc0b74Ddqrdtz7OZHphY/MFg0rKN9PUfa4ruZNuwdmoS2
HDgZf2zbeaA80l7gMF7OTHUe2HVFulQzU7ya43X2y00fxe3OQ/0jR02fsnLL5rM/P/mLsy/f7Z+f
iQvy3hmD/9HEqiuteHzx68F6+gbuf3lp8XOeVQ1rnXll9fabHpkaL9y4HS/obz7xcvHtSKs+PhzP
s/j1+x2fnYhLpbg+63wO9Xzo3Jmp1idiZpKkRsjMBEADujwz0+b9p8pfw3TudzPFX8UDqt4kqjUz
1Tq4nfujPLc8Oi2OhHF764FTXxs9Y+76nRc9QtY6xlYVZ9gfL2iPG91HTt/11JwJi9dX/m0cz+O9
Fb8j/IFXlo9fuCZuLO3+9NYx/z/fRMM62tdzpC1mpqY5K+Kj9PYNPNTybvzDiTcsj7QXOIzHE24+
+/vC6zyw64p0qWamaFrb1j9/6OfxOoj/+b87+fXi5RsXRrwc7xw/5+uPzbjr6ZZ1ewZnkXO/b3DB
xt6bH5kar7aRo6d/Y+zMcgOubFjrTLwK48KLi/YfX5gfHz1eynHNz1mzPf5q4vLNNzZNjucZHyj+
BXHPc0OrcD3PoZ4PnTsz1fpEzEyS1AiZmQBoQJdnZoo27z9V+T1NZffOXX3ejSmqNTPVOrhVHX67
DvXHqTAOnt9+tnVE06TivwF30SNkVOsYW9l7PQfj3H33M623jmmOI3n3kT/61UXxVvEOi9urdx+N
9xPP86aHp7Ss3VE+pqj+o309R9pFH34Sb/jvUxfGR7xtTHMct9/pGvyv1FUeaWsdxuM93P74zCkr
B9eleg7suiJdwpkp6vjsxGubP16xfX/lGrrlwMk3t+xevv2z4tVZq7i0Fm7d/XbnnrgOq/7qyxXv
J95hvILjRrz648UdV0Jc1XFFbdjb90bHrviIExavj5d7+SbpzyGl834iVY+RJF2XmZkAaECXbWYq
WtZz+KfLOn84f20UN879fUx1VufBradvYEn3vvkbe9t7D1X9Va0ufIytrPvI6fi4bT0HK38Oriie
W+Wd8cil3Z927D9R3lPZn3K0ryqez81nfy5v5c4D8Rzic6l6QNF5D+PxJONTLke6q/PArks7M139
xZV8wwMTX13fE5d9vFjvGDer+E/ISZJ0FXasr8/MBECjKWamz/v8guehruljbDEzVd2p66lGn5mi
Ge2dt41tHtE06dYxzeMXrokLteoBkiRdJR08dvLUqVOnT58e+v/dANAA4gvfyZMn44tg1ZfFRu7a
Pcaama77zExDWZckSVd/u/p+3Xf8RH9/f/wf7jMA0ADiS1584Ysvf/FFsOrLoq7FY2xP30Dxm9F1
vWZmkiTpWmrX8YHDx/tPnDoV/58bAK578SUvvvDttjFJ10hmJkmSJEmSJCVkZpIkSZIkSVJCZiZJ
kiRJkiQlZGaSJEmSJElSQmYmSZIkSZIkJWRmkiRJkiRJUkJmJkmSJEmSJCVkZpIkSZIkSVJCZiZJ
kiRJkiQlZGaSJEmSJElSQmYmSZIkSZIkJWRmkiRJkiRJUkL1zkztR/p3Hh+oemNJkiRJkiSpqN6Z
adOxMx3HzlS9sSRJkiRJklRU78x06je/++DoFx3Hzuzs8z1NkiRJkiRJqq7emSmc+e3/bu478/6R
/vckSZIkSZKkP24YMxMAAAAA1GJmAgAAACCBmQkAAACABGYmAAAAABKYmQAAAABIYGYCAAAAIIGZ
CQAAAIAEZiYAAAAAEpiZAAAAAEhgZgIAAAAggZkJAAAAgARmJgAAAAASmJkAAAAASGBmAgAAACCB
mQkAAACABGYmAAAAABKYmQAAAABIYGYCAAAAIIGZCQAAAIAEZiYAAAAAEpiZAAAAAEhgZgIAAAAg
gZkJAAAAgARmJgAAAAASmJkAAAAASGBmAgAAACCBmQkAAACABGYmAAAAABKYmQAAAABIYGYCAAAA
IIGZCQAAAIAEZiYAAAAAEpiZAAAAAEhgZgIAAAAggZkJAAAAgARmJgAAAAASmJkAAAAASGBmAgAA
ACCBmQkAAACABGYmAAAAABKYmQAAAABIYGYCAAAAIIGZCQAAAIAEZiYAAAAAEpiZAAAAAEhgZgIA
AAAggZkJAAAAgARmJgAAAAASmJkAAAAASGBmAgAAACCBmQkAAACABGYmAAAAABKYmQAAAABIYGYC
AAAAIIGZCQAAAIAEZiYAAAAAEpiZAAAAAEhgZgIAAAAggZkJAAAAgARmJgAAAAASmJkAAAAASGBm
AgAAACCBmQkAAACABGYmAAAAABKYmQAAAABIYGYCAAAAIIGZCQAAAIAEZiYAAAAAEpiZAAAAAEhg
ZgIAAAAggZkJAAAAgARmJgAAAAASmJkAAAAASGBmAgAAACCBmQkAAACABGYmAAAAABKYmQAAAABI
YGYCAAAAIIGZCQAAAIAEZiYAAAAAEpiZAAAAAEhgZgIAAAAggZkJAAAAgARmJgAAAAASmJkAAAAA
SGBmAgAAACCBmQkAAACABGYmAAAAABKYmQAAAABIYGYCAAAAIIGZCQAAAIAEZiYAAAAAEpiZAAAA
AEhgZgIAAAAggZkJAAAAgARmJgAAAAASmJkAAAAASGBmAgAAACCBmQkAAACABGYmAAAAABKYmQAA
AABIYGYCAAAAIIGZCQAAAIAEZiYAAAAAEpiZAAAAAEhgZgIAAAAggZkJAAAAgARmJgAAAAASmJkA
AAAASGBmAgAAACCBmQkAAACABGYmAAAAABKYmQAAAABIYGYCAAAAIIGZCQAAAIAEZiYAAAAAEpiZ
AAAAAEhgZgIAAAAggZkJAAAAgARmJgAAAAASmJkAAAAASGBmAgAAACCBmQkAAACABGYmAAAAABKY
mQAAAABIYGYCAAAAIIGZCQAAAIAEZiYAAAAAEpiZAAAAAEhgZgIAAAAggZkJAAAAgARmJgAAAAAS
mJkAAAAASGBmAgAAACCBmQkAAACABGYmAAAAABKYmQAAAABIYGYCAAAAIIGZCQAAAIAEZiYAAAAA
EpiZAAAAAEhgZgIAAAAggZkJAAAAgARmJgAAAAASmJkAAAAASGBmAgAAACCBmQkAAACABGYmAAAA
ABKYmQAAAABIYGYCAAAAIIGZCQAAAIAEZiYAAAAAEpiZAAAAAEhgZgIAAAAggZkJAAAAgARmJgAA
AAD+ZL///f8BI3ixirtBqw4AAAAASUVORK5CYII=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>3568</attachid>
            <date>2016-12-21 17:06:57 +0000</date>
            <delta_ts>2016-12-21 17:06:57 +0000</delta_ts>
            <desc>Log</desc>
            <filename>toaster_ui.log</filename>
            <type>application/octet-stream</type>
            <size>21233664</size>
            <attacher name="David Lopez Barriba">davidx.lopez.barriba</attacher>
            
              <data encoding="base64">Tk9URTogVG9hc3RlclVJIHdhaXRpbmcgZm9yIGV2ZW50cwpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQo
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI0NiwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X3N0YXJ0ZWRfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTA5MywgaW4gc3RvcmVfc3RhcnRlZF9idWls
ZAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9i
dWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxm
LmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAg
ICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVy
biBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xv
bmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNl
bGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9m
ZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0
cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5
IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24u
Y3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vy
c29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBz
ZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
dXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5
cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1
LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdh
cyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjY2LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIuc2V0X3JlY2lwZXNfcGFyc2VkKGV2ZW50LmN1cnJlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MTczLCBpbiBzZXRfcmVjaXBlc19wYXJzZWQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93
aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI2NiwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnNldF9yZWNpcGVzX3BhcnNlZChldmVu
dC5jdXJyZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTE3MywgaW4gc2V0X3JlY2lwZXNfcGFyc2VkCiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNjYsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zZXRfcmVjaXBlc19wYXJzZWQoZXZlbnQuY3VycmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDExNzMsIGlu
IHNldF9yZWNpcGVzX3BhcnNlZAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjY2LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc2V0X3JlY2lwZXNfcGFyc2VkKGV2ZW50LmN1cnJl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMTczLCBpbiBzZXRfcmVjaXBlc19wYXJzZWQKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI2NiwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnNldF9y
ZWNpcGVzX3BhcnNlZChldmVudC5jdXJyZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTE3MywgaW4gc2V0X3Jl
Y2lwZXNfcGFyc2VkCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNjYsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zZXRfcmVjaXBlc19wYXJzZWQoZXZlbnQuY3VycmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDExNzMsIGluIHNldF9yZWNpcGVzX3BhcnNlZAogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjY2LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc2V0X3JlY2lwZXNf
cGFyc2VkKGV2ZW50LmN1cnJlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMTczLCBpbiBzZXRfcmVjaXBlc19w
YXJzZWQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI2NiwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnNldF9yZWNpcGVzX3BhcnNlZChldmVudC5jdXJyZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTE3MywgaW4gc2V0X3JlY2lwZXNfcGFyc2VkCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZv
bGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyNjYsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zZXRfcmVjaXBlc19wYXJzZWQo
ZXZlbnQuY3VycmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDExNzMsIGluIHNldF9yZWNpcGVzX3BhcnNlZAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjY2LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc2V0X3JlY2lwZXNfcGFyc2VkKGV2ZW50LmN1cnJlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMTcz
LCBpbiBzZXRfcmVjaXBlc19wYXJzZWQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI2
NiwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnNldF9yZWNpcGVzX3BhcnNlZChldmVudC5j
dXJyZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTE3MywgaW4gc2V0X3JlY2lwZXNfcGFyc2VkCiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNjYsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
ZXRfcmVjaXBlc19wYXJzZWQoZXZlbnQuY3VycmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDExNzMsIGluIHNl
dF9yZWNpcGVzX3BhcnNlZAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjY2LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc2V0X3JlY2lwZXNfcGFyc2VkKGV2ZW50LmN1cnJlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMTczLCBpbiBzZXRfcmVjaXBlc19wYXJzZWQKICAgIHNlbGYuX2Vuc3Vy
ZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3Jt
X3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0g
QnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5
IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdl
dF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxm
Ll9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVj
dXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBl
eGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0g
c2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVj
dGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5
OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUs
IHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAg
cmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28u
ZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI2NiwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnNldF9yZWNp
cGVzX3BhcnNlZChldmVudC5jdXJyZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTE3MywgaW4gc2V0X3JlY2lw
ZXNfcGFyc2VkCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNjYsIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zZXRfcmVjaXBlc19wYXJzZWQoZXZlbnQuY3VycmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDExNzMsIGluIHNldF9yZWNpcGVzX3BhcnNlZAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjY2LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc2V0X3JlY2lwZXNfcGFy
c2VkKGV2ZW50LmN1cnJlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMTczLCBpbiBzZXRfcmVjaXBlc19wYXJz
ZWQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI2NiwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnNldF9yZWNpcGVzX3BhcnNlZChldmVudC5jdXJyZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTE3MywgaW4gc2V0X3JlY2lwZXNfcGFyc2VkCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyNjYsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zZXRfcmVjaXBlc19wYXJzZWQoZXZl
bnQuY3VycmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDExNzMsIGluIHNldF9yZWNpcGVzX3BhcnNlZAogICAg
c2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAog
ICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWls
ZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRh
dHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2Zl
dGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9h
bGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNv
bXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGlu
ZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29y
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAg
ICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVu
c3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMu
cHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRq
X2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiBy
ZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjY2LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc2V0X3JlY2lwZXNfcGFyc2VkKGV2ZW50LmN1cnJlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMTczLCBp
biBzZXRfcmVjaXBlc19wYXJzZWQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI2Niwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnNldF9yZWNpcGVzX3BhcnNlZChldmVudC5jdXJy
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTE3MywgaW4gc2V0X3JlY2lwZXNfcGFyc2VkCiAgICBzZWxmLl9l
bnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxm
Lm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdl
ci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2Vs
Zi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAg
c2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIu
ZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwg
aW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNv
ciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nv
bm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxp
bmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UK
ICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGph
bmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3Qg
Y2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyNjYsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zZXRf
cmVjaXBlc19wYXJzZWQoZXZlbnQuY3VycmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDExNzMsIGluIHNldF9y
ZWNpcGVzX3BhcnNlZAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjY2LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc2V0X3JlY2lwZXNfcGFyc2VkKGV2ZW50LmN1cnJlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMTczLCBpbiBzZXRfcmVjaXBlc19wYXJzZWQKICAgIHNlbGYuX2Vuc3VyZV9i
dWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dy
YXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5Iiwg
bGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9x
dWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9y
ZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRl
X3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVj
dXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2Vs
Zi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlv
bigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwg
aW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRy
YWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFp
c2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIu
dXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI2NiwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnNldF9yZWNpcGVz
X3BhcnNlZChldmVudC5jdXJyZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTE3MywgaW4gc2V0X3JlY2lwZXNf
cGFyc2VkCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNjYsIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zZXRfcmVjaXBlc19wYXJzZWQoZXZlbnQuY3VycmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDExNzMsIGluIHNldF9yZWNpcGVzX3BhcnNlZAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBm
b2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjY2LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc2V0X3JlY2lwZXNfcGFyc2Vk
KGV2ZW50LmN1cnJlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMTczLCBpbiBzZXRfcmVjaXBlc19wYXJzZWQK
ICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVp
bGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5i
cmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAg
YnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4g
Z2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25l
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxm
Ll9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0
Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMg
PSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIs
IGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1
cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNv
cgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2Vs
Zi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0
aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBl
LCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwg
aW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMg
dGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI2NiwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnNldF9yZWNpcGVzX3BhcnNlZChldmVudC5jdXJyZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTE3
MywgaW4gc2V0X3JlY2lwZXNfcGFyc2VkCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
NjYsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zZXRfcmVjaXBlc19wYXJzZWQoZXZlbnQu
Y3VycmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDExNzMsIGluIHNldF9yZWNpcGVzX3BhcnNlZAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjY2LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
c2V0X3JlY2lwZXNfcGFyc2VkKGV2ZW50LmN1cnJlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMTczLCBpbiBz
ZXRfcmVjaXBlc19wYXJzZWQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI2NiwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnNldF9yZWNpcGVzX3BhcnNlZChldmVudC5jdXJyZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTE3MywgaW4gc2V0X3JlY2lwZXNfcGFyc2VkCiAgICBzZWxmLl9lbnN1
cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9y
bV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5w
eSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5n
ZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2Vs
Zi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhl
Y3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4g
ZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9
IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5l
Y3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUg
OTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVl
LCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAg
IHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdv
LmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyNjYsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zZXRfcmVj
aXBlc19wYXJzZWQoZXZlbnQuY3VycmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDExNzMsIGluIHNldF9yZWNp
cGVzX3BhcnNlZAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjY2LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc2V0X3JlY2lwZXNfcGFyc2VkKGV2ZW50LmN1cnJlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMTczLCBpbiBzZXRfcmVjaXBlc19wYXJzZWQKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI2NiwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnNldF9yZWNpcGVzX3Bh
cnNlZChldmVudC5jdXJyZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTE3MywgaW4gc2V0X3JlY2lwZXNfcGFy
c2VkCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24g
d2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNjYsIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci5zZXRfcmVjaXBlc19wYXJzZWQoZXZlbnQuY3VycmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDExNzMsIGluIHNldF9yZWNpcGVzX3BhcnNlZAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjY2LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc2V0X3JlY2lwZXNfcGFyc2VkKGV2
ZW50LmN1cnJlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMTczLCBpbiBzZXRfcmVjaXBlc19wYXJzZWQKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI2NiwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnNldF9yZWNpcGVzX3BhcnNlZChldmVudC5jdXJyZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTE3Mywg
aW4gc2V0X3JlY2lwZXNfcGFyc2VkCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNjYs
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zZXRfcmVjaXBlc19wYXJzZWQoZXZlbnQuY3Vy
cmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDExNzMsIGluIHNldF9yZWNpcGVzX3BhcnNlZAogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0
IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjY2LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc2V0
X3JlY2lwZXNfcGFyc2VkKGV2ZW50LmN1cnJlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMTczLCBpbiBzZXRf
cmVjaXBlc19wYXJzZWQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI2NiwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnNldF9yZWNpcGVzX3BhcnNlZChldmVudC5jdXJyZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTE3MywgaW4gc2V0X3JlY2lwZXNfcGFyc2VkCiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyNjYsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zZXRfcmVjaXBl
c19wYXJzZWQoZXZlbnQuY3VycmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDExNzMsIGluIHNldF9yZWNpcGVz
X3BhcnNlZAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjY2LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc2V0X3JlY2lwZXNfcGFyc2VkKGV2ZW50LmN1cnJlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMTczLCBpbiBzZXRfcmVjaXBlc19wYXJzZWQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI2NiwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnNldF9yZWNpcGVzX3BhcnNl
ZChldmVudC5jdXJyZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTE3MywgaW4gc2V0X3JlY2lwZXNfcGFyc2Vk
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNjYsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zZXRfcmVjaXBlc19wYXJzZWQoZXZlbnQuY3VycmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEx
NzMsIGluIHNldF9yZWNpcGVzX3BhcnNlZAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2Jq
ZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4g
bWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5h
bWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwg
aW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9
IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4
LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBj
dXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdf
Y3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwog
ICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRo
X3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dp
bmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
MjY2LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc2V0X3JlY2lwZXNfcGFyc2VkKGV2ZW50
LmN1cnJlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMTczLCBpbiBzZXRfcmVjaXBlc19wYXJzZWQKICAgIHNl
bGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAg
IHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRy
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9t
YW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0
cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRj
aF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxs
CiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21w
aWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUg
ODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAg
Y3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1
cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5
IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9l
eGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVy
YWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI2NiwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnNldF9yZWNpcGVzX3BhcnNlZChldmVudC5jdXJyZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTE3MywgaW4g
c2V0X3JlY2lwZXNfcGFyc2VkCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNjYsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zZXRfcmVjaXBlc19wYXJzZWQoZXZlbnQuY3VycmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDExNzMsIGluIHNldF9yZWNpcGVzX3BhcnNlZAogICAgc2VsZi5fZW5z
dXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5v
cm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3Qg
PSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIu
cHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYu
Z2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNl
bGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4
ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGlu
IGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3Ig
PSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25u
ZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5l
IDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1
ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAg
ICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5n
by5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNh
dXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjY2LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc2V0X3Jl
Y2lwZXNfcGFyc2VkKGV2ZW50LmN1cnJlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMTczLCBpbiBzZXRfcmVj
aXBlc19wYXJzZWQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI2NiwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnNldF9yZWNpcGVzX3BhcnNlZChldmVudC5jdXJyZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTE3MywgaW4gc2V0X3JlY2lwZXNfcGFyc2VkCiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2Yg
dGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyNjYsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zZXRfcmVjaXBlc19w
YXJzZWQoZXZlbnQuY3VycmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDExNzMsIGluIHNldF9yZWNpcGVzX3Bh
cnNlZAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjY2LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc2V0X3JlY2lwZXNfcGFyc2VkKGV2ZW50LmN1cnJlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMTczLCBpbiBzZXRfcmVjaXBlc19wYXJzZWQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI2NiwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnNldF9yZWNpcGVzX3BhcnNlZChl
dmVudC5jdXJyZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTE3MywgaW4gc2V0X3JlY2lwZXNfcGFyc2VkCiAg
ICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxk
CiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJi
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1
aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdl
dGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5f
ZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNo
X2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0g
Y29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBs
aW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJz
b3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IK
ICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYu
ZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGls
cy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwg
ZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGlu
IHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRo
ZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNjYsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci5zZXRfcmVjaXBlc19wYXJzZWQoZXZlbnQuY3VycmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDExNzMs
IGluIHNldF9yZWNpcGVzX3BhcnNlZAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjY2
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc2V0X3JlY2lwZXNfcGFyc2VkKGV2ZW50LmN1
cnJlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMTczLCBpbiBzZXRfcmVjaXBlc19wYXJzZWQKICAgIHNlbGYu
X2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNl
bGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1
ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5h
Z2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihz
ZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9h
bGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAg
ICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxl
ci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4
LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vy
c29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVf
Y29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5Iiwg
bGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNf
dmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlz
ZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpk
amFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI2NiwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnNl
dF9yZWNpcGVzX3BhcnNlZChldmVudC5jdXJyZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTE3MywgaW4gc2V0
X3JlY2lwZXNfcGFyc2VkCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNjYsIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zZXRfcmVjaXBlc19wYXJzZWQoZXZlbnQuY3VycmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDExNzMsIGluIHNldF9yZWNpcGVzX3BhcnNlZAogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjY2LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc2V0X3JlY2lw
ZXNfcGFyc2VkKGV2ZW50LmN1cnJlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMTczLCBpbiBzZXRfcmVjaXBl
c19wYXJzZWQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9l
bnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAg
ICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2Fy
Z3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0g
bGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9f
CiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1
LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAg
IHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21w
aWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25u
ZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIs
IGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJz
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNv
cgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRq
X2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBs
aW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI2NiwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnNldF9yZWNpcGVzX3BhcnNlZChldmVudC5jdXJyZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTE3MywgaW4gc2V0X3JlY2lwZXNfcGFyc2VkCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyNjYsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zZXRfcmVjaXBlc19wYXJz
ZWQoZXZlbnQuY3VycmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDExNzMsIGluIHNldF9yZWNpcGVzX3BhcnNl
ZAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9i
dWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxm
LmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAg
ICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVy
biBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xv
bmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNl
bGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9m
ZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0
cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5
IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24u
Y3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vy
c29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBz
ZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
dXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5
cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1
LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdh
cyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjY2LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIuc2V0X3JlY2lwZXNfcGFyc2VkKGV2ZW50LmN1cnJlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MTczLCBpbiBzZXRfcmVjaXBlc19wYXJzZWQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93
aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI2NiwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnNldF9yZWNpcGVzX3BhcnNlZChldmVu
dC5jdXJyZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTE3MywgaW4gc2V0X3JlY2lwZXNfcGFyc2VkCiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNjYsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zZXRfcmVjaXBlc19wYXJzZWQoZXZlbnQuY3VycmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDExNzMsIGlu
IHNldF9yZWNpcGVzX3BhcnNlZAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjY2LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc2V0X3JlY2lwZXNfcGFyc2VkKGV2ZW50LmN1cnJl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMTczLCBpbiBzZXRfcmVjaXBlc19wYXJzZWQKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI2NiwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnNldF9y
ZWNpcGVzX3BhcnNlZChldmVudC5jdXJyZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTE3MywgaW4gc2V0X3Jl
Y2lwZXNfcGFyc2VkCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNjYsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zZXRfcmVjaXBlc19wYXJzZWQoZXZlbnQuY3VycmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDExNzMsIGluIHNldF9yZWNpcGVzX3BhcnNlZAogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjY2LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc2V0X3JlY2lwZXNf
cGFyc2VkKGV2ZW50LmN1cnJlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMTczLCBpbiBzZXRfcmVjaXBlc19w
YXJzZWQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI2NiwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnNldF9yZWNpcGVzX3BhcnNlZChldmVudC5jdXJyZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTE3MywgaW4gc2V0X3JlY2lwZXNfcGFyc2VkCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZv
bGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyNjYsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zZXRfcmVjaXBlc19wYXJzZWQo
ZXZlbnQuY3VycmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDExNzMsIGluIHNldF9yZWNpcGVzX3BhcnNlZAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjY2LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc2V0X3JlY2lwZXNfcGFyc2VkKGV2ZW50LmN1cnJlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMTcz
LCBpbiBzZXRfcmVjaXBlc19wYXJzZWQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI2
NiwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnNldF9yZWNpcGVzX3BhcnNlZChldmVudC5j
dXJyZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTE3MywgaW4gc2V0X3JlY2lwZXNfcGFyc2VkCiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNjYsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
ZXRfcmVjaXBlc19wYXJzZWQoZXZlbnQuY3VycmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDExNzMsIGluIHNl
dF9yZWNpcGVzX3BhcnNlZAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjY2LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc2V0X3JlY2lwZXNfcGFyc2VkKGV2ZW50LmN1cnJlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMTczLCBpbiBzZXRfcmVjaXBlc19wYXJzZWQKICAgIHNlbGYuX2Vuc3Vy
ZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3Jt
X3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0g
QnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5
IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdl
dF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxm
Ll9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVj
dXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBl
eGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0g
c2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVj
dGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5
OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUs
IHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAg
cmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28u
ZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI2NiwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnNldF9yZWNp
cGVzX3BhcnNlZChldmVudC5jdXJyZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTE3MywgaW4gc2V0X3JlY2lw
ZXNfcGFyc2VkCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNjYsIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zZXRfcmVjaXBlc19wYXJzZWQoZXZlbnQuY3VycmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDExNzMsIGluIHNldF9yZWNpcGVzX3BhcnNlZAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjY2LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc2V0X3JlY2lwZXNfcGFy
c2VkKGV2ZW50LmN1cnJlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMTczLCBpbiBzZXRfcmVjaXBlc19wYXJz
ZWQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI2NiwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnNldF9yZWNpcGVzX3BhcnNlZChldmVudC5jdXJyZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTE3MywgaW4gc2V0X3JlY2lwZXNfcGFyc2VkCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyNjYsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zZXRfcmVjaXBlc19wYXJzZWQoZXZl
bnQuY3VycmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDExNzMsIGluIHNldF9yZWNpcGVzX3BhcnNlZAogICAg
c2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAog
ICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWls
ZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRh
dHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2Zl
dGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9h
bGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNv
bXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGlu
ZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29y
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAg
ICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVu
c3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMu
cHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRq
X2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiBy
ZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjY2LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc2V0X3JlY2lwZXNfcGFyc2VkKGV2ZW50LmN1cnJlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMTczLCBp
biBzZXRfcmVjaXBlc19wYXJzZWQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI2Niwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnNldF9yZWNpcGVzX3BhcnNlZChldmVudC5jdXJy
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTE3MywgaW4gc2V0X3JlY2lwZXNfcGFyc2VkCiAgICBzZWxmLl9l
bnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxm
Lm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdl
ci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2Vs
Zi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAg
c2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIu
ZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwg
aW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNv
ciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nv
bm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxp
bmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UK
ICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGph
bmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3Qg
Y2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyNjYsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zZXRf
cmVjaXBlc19wYXJzZWQoZXZlbnQuY3VycmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDExNzMsIGluIHNldF9y
ZWNpcGVzX3BhcnNlZAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjY2LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc2V0X3JlY2lwZXNfcGFyc2VkKGV2ZW50LmN1cnJlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMTczLCBpbiBzZXRfcmVjaXBlc19wYXJzZWQKICAgIHNlbGYuX2Vuc3VyZV9i
dWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dy
YXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5Iiwg
bGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9x
dWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9y
ZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRl
X3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVj
dXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2Vs
Zi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlv
bigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwg
aW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRy
YWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFp
c2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIu
dXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI2NiwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnNldF9yZWNpcGVz
X3BhcnNlZChldmVudC5jdXJyZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTE3MywgaW4gc2V0X3JlY2lwZXNf
cGFyc2VkCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNjYsIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zZXRfcmVjaXBlc19wYXJzZWQoZXZlbnQuY3VycmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDExNzMsIGluIHNldF9yZWNpcGVzX3BhcnNlZAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBm
b2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjY2LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc2V0X3JlY2lwZXNfcGFyc2Vk
KGV2ZW50LmN1cnJlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMTczLCBpbiBzZXRfcmVjaXBlc19wYXJzZWQK
ICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVp
bGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5i
cmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAg
YnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4g
Z2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25l
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxm
Ll9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0
Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMg
PSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIs
IGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1
cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNv
cgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2Vs
Zi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0
aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBl
LCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwg
aW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMg
dGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI2NiwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnNldF9yZWNpcGVzX3BhcnNlZChldmVudC5jdXJyZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTE3
MywgaW4gc2V0X3JlY2lwZXNfcGFyc2VkCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
NjYsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zZXRfcmVjaXBlc19wYXJzZWQoZXZlbnQu
Y3VycmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDExNzMsIGluIHNldF9yZWNpcGVzX3BhcnNlZAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjY2LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
c2V0X3JlY2lwZXNfcGFyc2VkKGV2ZW50LmN1cnJlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMTczLCBpbiBz
ZXRfcmVjaXBlc19wYXJzZWQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI2NiwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnNldF9yZWNpcGVzX3BhcnNlZChldmVudC5jdXJyZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTE3MywgaW4gc2V0X3JlY2lwZXNfcGFyc2VkCiAgICBzZWxmLl9lbnN1
cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9y
bV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5w
eSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5n
ZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2Vs
Zi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhl
Y3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4g
ZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9
IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5l
Y3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUg
OTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVl
LCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAg
IHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdv
LmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyNjYsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zZXRfcmVj
aXBlc19wYXJzZWQoZXZlbnQuY3VycmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDExNzMsIGluIHNldF9yZWNp
cGVzX3BhcnNlZAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjY2LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc2V0X3JlY2lwZXNfcGFyc2VkKGV2ZW50LmN1cnJlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMTczLCBpbiBzZXRfcmVjaXBlc19wYXJzZWQKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI2NiwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnNldF9yZWNpcGVzX3Bh
cnNlZChldmVudC5jdXJyZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTE3MywgaW4gc2V0X3JlY2lwZXNfcGFy
c2VkCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24g
d2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNjYsIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci5zZXRfcmVjaXBlc19wYXJzZWQoZXZlbnQuY3VycmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDExNzMsIGluIHNldF9yZWNpcGVzX3BhcnNlZAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjY2LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc2V0X3JlY2lwZXNfcGFyc2VkKGV2
ZW50LmN1cnJlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMTczLCBpbiBzZXRfcmVjaXBlc19wYXJzZWQKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI2NiwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnNldF9yZWNpcGVzX3BhcnNlZChldmVudC5jdXJyZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTE3Mywg
aW4gc2V0X3JlY2lwZXNfcGFyc2VkCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNjYs
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zZXRfcmVjaXBlc19wYXJzZWQoZXZlbnQuY3Vy
cmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDExNzMsIGluIHNldF9yZWNpcGVzX3BhcnNlZAogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0
IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjY2LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc2V0
X3JlY2lwZXNfcGFyc2VkKGV2ZW50LmN1cnJlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMTczLCBpbiBzZXRf
cmVjaXBlc19wYXJzZWQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI2NiwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnNldF9yZWNpcGVzX3BhcnNlZChldmVudC5jdXJyZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTE3MywgaW4gc2V0X3JlY2lwZXNfcGFyc2VkCiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyNjYsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zZXRfcmVjaXBl
c19wYXJzZWQoZXZlbnQuY3VycmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDExNzMsIGluIHNldF9yZWNpcGVz
X3BhcnNlZAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjY2LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc2V0X3JlY2lwZXNfcGFyc2VkKGV2ZW50LmN1cnJlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMTczLCBpbiBzZXRfcmVjaXBlc19wYXJzZWQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI2NiwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnNldF9yZWNpcGVzX3BhcnNl
ZChldmVudC5jdXJyZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTE3MywgaW4gc2V0X3JlY2lwZXNfcGFyc2Vk
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNjYsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zZXRfcmVjaXBlc19wYXJzZWQoZXZlbnQuY3VycmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEx
NzMsIGluIHNldF9yZWNpcGVzX3BhcnNlZAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2Jq
ZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4g
bWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5h
bWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwg
aW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9
IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4
LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBj
dXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdf
Y3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwog
ICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRo
X3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dp
bmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
MjY2LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc2V0X3JlY2lwZXNfcGFyc2VkKGV2ZW50
LmN1cnJlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMTczLCBpbiBzZXRfcmVjaXBlc19wYXJzZWQKICAgIHNl
bGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAg
IHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRy
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9t
YW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0
cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRj
aF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxs
CiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21w
aWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUg
ODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAg
Y3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1
cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5
IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9l
eGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVy
YWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI2NiwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnNldF9yZWNpcGVzX3BhcnNlZChldmVudC5jdXJyZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTE3MywgaW4g
c2V0X3JlY2lwZXNfcGFyc2VkCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNjYsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zZXRfcmVjaXBlc19wYXJzZWQoZXZlbnQuY3VycmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDExNzMsIGluIHNldF9yZWNpcGVzX3BhcnNlZAogICAgc2VsZi5fZW5z
dXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5v
cm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3Qg
PSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIu
cHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYu
Z2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNl
bGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4
ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGlu
IGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3Ig
PSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25u
ZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5l
IDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1
ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAg
ICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5n
by5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNh
dXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjY2LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc2V0X3Jl
Y2lwZXNfcGFyc2VkKGV2ZW50LmN1cnJlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMTczLCBpbiBzZXRfcmVj
aXBlc19wYXJzZWQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI2NiwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnNldF9yZWNpcGVzX3BhcnNlZChldmVudC5jdXJyZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTE3MywgaW4gc2V0X3JlY2lwZXNfcGFyc2VkCiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2Yg
dGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyNjYsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zZXRfcmVjaXBlc19w
YXJzZWQoZXZlbnQuY3VycmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDExNzMsIGluIHNldF9yZWNpcGVzX3Bh
cnNlZAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjY2LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc2V0X3JlY2lwZXNfcGFyc2VkKGV2ZW50LmN1cnJlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMTczLCBpbiBzZXRfcmVjaXBlc19wYXJzZWQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI3MCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnNldF9yZWNpcGVzX3BhcnNlZChl
dmVudC50b3RhbCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDExNzMsIGluIHNldF9yZWNpcGVzX3BhcnNlZAogICAg
c2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAog
ICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWls
ZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRh
dHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2Zl
dGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9h
bGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNv
bXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGlu
ZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29y
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAg
ICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVu
c3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMu
cHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRq
X2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiBy
ZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc2F2ZV9idWlsZF90YXJnZXRzKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTEwMywgaW4gc2F2ZV9i
dWlsZF90YXJnZXRzCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDQy
OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xheWVyX2luZm8oZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMDg3LCBpbiBzdG9yZV9sYXllcl9pbmZvCiAgICBzZWxmLmludGVybmFsX3N0
YXRlWydsdnMnXVtzZWxmLm9ybV93cmFwcGVyLmdldF91cGRhdGVfbGF5ZXJfb2JqZWN0KGxheWVy
aW5mb3NbbGF5ZXJdLCBzZWxmLmJyYmUpXSA9IGxheWVyaW5mb3NbbGF5ZXJdWyd2ZXJzaW9uJ10K
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDQ0NiwgaW4gZ2V0X3VwZGF0ZV9sYXllcl9vYmplY3QKICAgIG5hbWU9bGF5
ZXJfaW5mb3JtYXRpb25bJ25hbWUnXSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQo
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnNhdmVf
YnVpbGRfdGFyZ2V0cyhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDExMDMsIGluIHNhdmVfYnVpbGRfdGFy
Z2V0cwogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgNDU2LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfZGVwZW5kZW5jeV9pbmZvcm1hdGlvbihldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEzOTAsIGluIHN0b3JlX2RlcGVuZGVuY3lfaW5mb3JtYXRpb24KICAgIGxheWVyX3ZlcnNp
b25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX2RlcGVuZGVuY3kocGF0aCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDk3MywgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9kZXBlbmRlbmN5CiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSA0MzUsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9taXNzZWRfc3RhdGVfdGFza3MoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMzA3LCBpbiBz
dG9yZV9taXNzZWRfc3RhdGVfdGFza3MKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dl
dF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShmbikKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEs
IGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNp
b25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
c3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2
ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24g
d2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBz
dG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0g
c2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNr
ZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3Jf
cGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJz
aW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNl
bGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2Zp
bGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3Bh
dGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lv
bl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxm
Ll9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxl
CiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRo
KGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25f
Zm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9l
bnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAg
ICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2Fy
Z3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0g
bGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9f
CiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1
LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAg
IHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21w
aWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25u
ZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIs
IGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJz
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNv
cgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRq
X2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBs
aW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
MDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5f
Z2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQog
ICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChs
b2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zv
cl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5
LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dl
dF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAg
IGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9j
YWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3Jf
cGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwg
aW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRf
cmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBs
YXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2Fs
ZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3Bh
dGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGlu
IHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3Jl
Y2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5
ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZp
bGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRo
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBz
dG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNp
cGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVy
X3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxl
cGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVu
dGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
NjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2Vs
Zi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
dXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRl
X2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0
YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0
b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rh
c2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRh
J10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3
NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0
IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25F
cnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBp
biBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICBy
ZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFz
a2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9p
bmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dl
dF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAx
LCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBk
YXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFs
X3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5k
X3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3Jl
X3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tk
YXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNz
ZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRp
b25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmll
ciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBp
biB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50
ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAz
NTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZv
cm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVu
dC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9u
X2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3Zl
cnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRf
bGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVf
YW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0
b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rh
c2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFz
ayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAg
YXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3Nl
cnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRp
ZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3Rh
cnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNr
CiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zy
b21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3Jl
Y2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNl
bGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9i
dWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dy
YXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5Iiwg
bGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9x
dWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9y
ZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRl
X3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVj
dXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2Vs
Zi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlv
bigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwg
aW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRy
YWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFp
c2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIu
dXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0
ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawog
ICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9t
X3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNp
cGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxm
Ll9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGlu
IHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRl
cm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRl
X2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9z
dG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0
YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxm
Ll9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxl
CiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRo
KGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25f
Zm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9l
bnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAg
ICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2Fy
Z3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0g
bGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9f
CiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1
LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAg
IHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21w
aWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25u
ZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIs
IGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJz
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNv
cgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRq
X2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBs
aW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNr
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBh
c3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2Vy
dGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlm
aWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIs
IGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5p
bnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBk
YXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2Fu
ZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRl
Wyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBz
ZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tm
aWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9w
YXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNp
b25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAg
ICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFz
c2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVu
dGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9z
dGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rh
c2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25f
ZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRf
cmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0g
c2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYy
LCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYu
aW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVw
ZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9h
bmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0
ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0g
c2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNr
ZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3Jf
cGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJz
aW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVf
dGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawog
ICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpB
c3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMg
dGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3Jl
X2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rh
c2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAg
IGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNz
ZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRo
ZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9s
b2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9l
bnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAg
ICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2Fy
Z3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0g
bGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9f
CiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1
LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAg
IHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21w
aWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25u
ZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIs
IGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJz
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNv
cgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRq
X2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBs
aW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNr
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBh
c3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2Vy
dGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9n
X2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBp
biBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51
cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVf
YW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3Rh
dGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3Rv
cmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFz
awogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEn
XQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0
b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3Jl
X3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sK
ICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10K
QXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9y
ZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2Vs
Zi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmls
ZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0
aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9u
X2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0
LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBm
b2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1
cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9y
bV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5w
eSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5n
ZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2Vs
Zi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhl
Y3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4g
ZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9
IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5l
Y3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUg
OTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVl
LCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAg
IHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdv
LmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
NjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2Vs
Zi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
dXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRl
X2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0
YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24g
PSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2Zp
bGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rh
c2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zv
cl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3Zl
cnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2Jq
ZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4g
bWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5h
bWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwg
aW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9
IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4
LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBj
dXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdf
Y3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwog
ICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRo
X3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dp
bmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2Yg
dGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZl
bnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYu
X2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNl
bGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1
ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5h
Z2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihz
ZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9h
bGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAg
ICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxl
ci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4
LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vy
c29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVf
Y29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5Iiwg
bGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNf
dmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlz
ZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpk
amFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0
b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVu
dAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9i
dWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxm
LmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAg
ICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVy
biBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xv
bmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNl
bGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9m
ZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0
cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5
IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24u
Y3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vy
c29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBz
ZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
dXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5
cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1
LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQs
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBp
ZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJy
b3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4g
c2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBk
YXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFs
X3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRp
b24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFz
a2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9t
X3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9u
X2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVy
X3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51
cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVf
YW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3Rh
dGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93
aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBp
biB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50
ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
ODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4g
dXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVy
bmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVf
YW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0
b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rh
c2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0
LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2Fu
ZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9y
ZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNr
ZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIw
OSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9n
ZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAg
ICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxv
Y2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9y
X3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGlu
IHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0
b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rh
c2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRh
J10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3
NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0
IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25F
cnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0
b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVu
dAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9i
dWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxm
LmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAg
ICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVy
biBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xv
bmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNl
bGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9m
ZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0
cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5
IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24u
Y3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vy
c29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBz
ZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
dXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5
cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1
LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdh
cyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3Rv
cmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4
OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1
cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJu
YWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9h
bmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3Rv
cmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFz
a2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
MDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5f
Z2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQog
ICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChs
b2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zv
cl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNz
ZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRp
b25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmll
ciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBp
biB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50
ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAz
NTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZv
cm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVu
dC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9u
X2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3Zl
cnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRf
bGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVw
ZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5h
bF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRh
dGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxf
c3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlv
biA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNr
ZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21f
dGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25f
Zm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJf
dmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0
b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rh
c2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRh
J10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24g
d2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBz
dG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2Jq
ZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4g
bWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5h
bWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwg
aW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9
IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4
LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBj
dXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdf
Y3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwog
ICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRo
X3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRh
dGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5k
X3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVb
J3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4
OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9l
bnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxm
Lm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdl
ci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2Vs
Zi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAg
c2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIu
ZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwg
aW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNv
ciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nv
bm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxp
bmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UK
ICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGph
bmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3Qg
Y2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9y
ZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVk
X3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRp
b25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9n
ZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2Jq
ID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5z
dXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5v
cm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3Qg
PSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIu
cHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYu
Z2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNl
bGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4
ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGlu
IGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3Ig
PSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25u
ZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5l
IDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1
ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAg
ICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5n
by5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNh
dXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVf
bG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAg
ICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxk
CiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJi
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1
aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdl
dGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5f
ZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNo
X2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0g
Y29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBs
aW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJz
b3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IK
ICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYu
ZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGls
cy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwg
ZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGlu
IHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRo
ZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9s
b2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9l
bnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAg
ICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2Fy
Z3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0g
bGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9f
CiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1
LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAg
IHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21w
aWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25u
ZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIs
IGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJz
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNv
cgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRq
X2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBs
aW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQs
IGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZv
bGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3Vy
ZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3Jt
X3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0g
QnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5
IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdl
dF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxm
Ll9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVj
dXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBl
eGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0g
c2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVj
dGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5
OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUs
IHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAg
cmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28u
ZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xv
Z19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAg
c2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAog
ICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWls
ZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRh
dHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2Zl
dGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9h
bGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNv
bXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGlu
ZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29y
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAg
ICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVu
c3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMu
cHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRq
X2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiBy
ZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlm
aWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIs
IGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5p
bnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBk
YXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2Fu
ZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRl
Wyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBz
ZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tm
aWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9w
YXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNp
b25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1
ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQo
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVf
bG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0
LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2Fu
ZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9y
ZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNr
ZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFz
c2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0
aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9z
dGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5m
b3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEs
IGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNp
b25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
c3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2
ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24g
d2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBz
dG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2Jq
ZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4g
bWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5h
bWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwg
aW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9
IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4
LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBj
dXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdf
Y3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwog
ICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRo
X3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dp
bmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2Yg
dGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZl
bnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYu
X2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNl
bGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1
ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5h
Z2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihz
ZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9h
bGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAg
ICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxl
ci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4
LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vy
c29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVf
Y29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5Iiwg
bGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNf
dmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlz
ZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpk
amFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBp
biBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9l
bnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxm
Lm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdl
ci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2Vs
Zi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAg
c2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIu
ZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwg
aW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNv
ciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nv
bm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxp
bmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UK
ICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGph
bmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4g
c2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5z
dXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5v
cm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3Qg
PSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIu
cHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYu
Z2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNl
bGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4
ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGlu
IGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3Ig
PSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25u
ZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5l
IDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1
ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAg
ICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5n
by5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNh
dXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVf
bG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAg
ICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxk
CiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJi
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1
aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdl
dGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5f
ZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNo
X2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0g
Y29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBs
aW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJz
b3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IK
ICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYu
ZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGls
cy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwg
ZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGlu
IHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50
aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xv
Z19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAg
c2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAog
ICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWls
ZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRh
dHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2Zl
dGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9h
bGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNv
bXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGlu
ZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29y
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAg
ICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVu
c3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMu
cHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRq
X2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiBy
ZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlm
aWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFy
dGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sK
ICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJv
bV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVj
aXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2Vs
Zi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBp
biB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50
ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
ODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4g
dXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVy
bmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVf
YW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0
b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rh
c2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFz
ayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAg
YXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3Nl
cnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3Jl
X3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9p
bmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAz
MSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVy
c2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2df
ZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3Nl
cnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlv
bkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
c3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2
ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3
NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0
IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25F
cnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBp
biBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1
cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJu
YWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcs
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1h
dGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50
YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zy
b21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNp
b25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5
ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5k
X3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3Jl
X3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tk
YXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNz
ZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRp
b25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0
YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZv
cm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwg
aW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lv
bl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIg
aW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4g
dXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVy
bmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVf
YW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0
b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rh
c2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0
LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2Fu
ZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9y
ZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNr
ZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFz
c2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0
aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9z
dGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5m
b3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEs
IGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNp
b25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVy
IGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGlu
IHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRl
cm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1
NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9y
bWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50
LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25f
ZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVy
c2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9s
YXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9h
bmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3Rv
cmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFz
a2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNr
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBh
c3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2Vy
dGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlm
aWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFy
dGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sK
ICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJv
bV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVj
aXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2Vs
Zi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBp
biB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50
ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0
ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRf
c3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsn
dGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1
ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQo
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVf
bG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFz
ayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAg
YXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3Nl
cnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRp
ZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYy
LCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYu
aW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9p
bmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShl
dmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0
aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVy
X3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9n
ZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2Jq
ZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4g
bWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5h
bWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwg
aW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9
IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4
LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBj
dXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdf
Y3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwog
ICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRo
X3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dp
bmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2Yg
dGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZl
bnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYu
X2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNl
bGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1
ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5h
Z2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihz
ZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9h
bGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAg
ICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxl
ci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4
LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vy
c29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVf
Y29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5Iiwg
bGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNf
dmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlz
ZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpk
amFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0
b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVu
dAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9i
dWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxm
LmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAg
ICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVy
biBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xv
bmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNl
bGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9m
ZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0
cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5
IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24u
Y3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vy
c29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBz
ZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
dXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5
cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1
LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdh
cyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3Rv
cmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4
OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9l
bnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxm
Lm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdl
ci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2Vs
Zi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAg
c2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIu
ZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwg
aW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNv
ciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nv
bm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxp
bmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UK
ICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGph
bmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3Qg
Y2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9y
ZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQK
ICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVp
bGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5i
cmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAg
YnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4g
Z2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25l
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxm
Ll9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0
Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMg
PSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIs
IGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1
cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNv
cgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2Vs
Zi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0
aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBl
LCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwg
aW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMg
dGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3Jl
X2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4
NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODks
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBk
YXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFs
X3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5k
X3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3Jl
X3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tk
YXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5
LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dl
dF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAg
IGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9j
YWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3Jf
cGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
NzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2Vy
dCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9u
RXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIg
aW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4g
dXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVy
bmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3Jt
YXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQu
dGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9m
cm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJz
aW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xh
eWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBm
b2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1
cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9y
bV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5w
eSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5n
ZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2Vs
Zi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhl
Y3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4g
ZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9
IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5l
Y3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUg
OTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVl
LCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAg
IHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdv
LmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9s
b2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xv
Z19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwg
aW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
dXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRl
X2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0
YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0
b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rh
c2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRh
J10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24g
d2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBp
biBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9y
ZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxh
eWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxm
aWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0
aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9i
dWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxm
LmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAg
ICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVy
biBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xv
bmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNl
bGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9m
ZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0
cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5
IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24u
Y3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vy
c29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBz
ZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
dXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5
cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1
LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQs
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBp
ZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJy
b3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4g
c2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFz
ayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVj
aXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tm
aWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5m
b3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRf
bGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwg
aW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0
ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9z
dGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9z
dG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90
YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0
YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAz
NjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2Vy
dCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9u
RXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFy
dGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3Jt
YXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGlu
IF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25f
b2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGlu
IHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQo
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBz
ZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRh
dGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxf
c3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
dXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRl
X2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0
YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9i
dWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dy
YXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5Iiwg
bGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9x
dWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9y
ZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRl
X3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVj
dXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2Vs
Zi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlv
bigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwg
aW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRy
YWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFp
c2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIu
dXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19l
dmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
c3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2
ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3
NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0
IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25F
cnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBp
biBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICBy
ZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFz
a2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9p
bmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dl
dF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAx
LCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBk
YXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFs
X3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5k
X3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3Jl
X3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tk
YXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5
LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dl
dF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAg
IGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9j
YWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3Jf
cGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
NzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2Vy
dCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9u
RXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIg
aW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4g
dXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVy
bmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3Jt
YXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQu
dGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9m
cm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJz
aW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xh
eWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2Fu
ZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9y
ZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNr
ZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFz
c2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0
aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9z
dGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5m
b3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEs
IGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNp
b25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVy
IGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGlu
IHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRl
cm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4
OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1
cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJu
YWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9h
bmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3Rv
cmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFz
a2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
MDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5f
Z2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQog
ICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChs
b2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zv
cl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNz
ZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRp
b25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmll
ciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRl
ZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAg
ICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21f
dGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lw
ZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYu
X2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4g
dXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVy
bmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVf
YW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0
b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rh
c2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0
LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRh
dGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxf
c3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYy
LCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYu
aW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVw
ZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9h
bmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0
ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0g
c2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNr
ZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3Jf
cGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJz
aW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4
OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1
cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJu
YWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9h
bmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3Rv
cmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFz
a2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
MDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5f
Z2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQog
ICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChs
b2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zv
cl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNz
ZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRp
b25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19l
dmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
NzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2Vy
dCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9u
RXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIg
aW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4g
dXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVy
bmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3Jt
YXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQu
dGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9m
cm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJz
aW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xh
eWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2Fu
ZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9y
ZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNr
ZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFz
c2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0
aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9z
dGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5m
b3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEs
IGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNp
b25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVy
IGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGlu
IHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRl
cm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRl
X2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9z
dG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0
YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rh
c2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAg
IGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNz
ZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRo
ZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9y
ZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVf
aW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEw
MzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3Zl
cnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0
aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAg
c2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAog
ICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWls
ZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRh
dHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2Zl
dGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9h
bGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNv
bXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGlu
ZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29y
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAg
ICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVu
c3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMu
cHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRq
X2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiBy
ZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9n
X2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNz
ZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRp
b25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmll
ciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRl
ZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAg
ICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21f
dGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lw
ZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYu
X2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4g
dXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVy
bmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVf
YW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0
b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rh
c2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYu
X2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUK
ICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgo
bG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9m
b3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFz
c2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0
aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZp
ZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0
ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawog
ICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9t
X3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNp
cGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxm
Ll9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGlu
IHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRl
cm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4
OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1
cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJu
YWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9h
bmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3Rv
cmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFz
a2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNr
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBh
c3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2Vy
dGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlm
aWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFy
dGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sK
ICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJv
bV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVj
aXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2Vs
Zi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRl
ZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAg
ICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21f
dGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lw
ZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYu
X2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4g
dXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVy
bmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVf
YW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0
b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rh
c2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFz
ayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAg
YXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3Nl
cnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRp
ZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYy
LCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYu
aW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVw
ZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9h
bmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0
ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0g
c2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNr
ZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3Jf
cGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJz
aW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVf
dGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawog
ICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpB
c3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRl
bnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9y
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNh
dXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVf
bG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAg
ICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxk
CiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJi
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1
aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdl
dGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5f
ZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNo
X2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0g
Y29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBs
aW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJz
b3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IK
ICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYu
ZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGls
cy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwg
ZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGlu
IHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRo
ZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9s
b2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9l
bnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAg
ICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2Fy
Z3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0g
bGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9f
CiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1
LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAg
IHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21w
aWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25u
ZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIs
IGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJz
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNv
cgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRq
X2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBs
aW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQs
IGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZv
bGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3Vy
ZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3Jt
X3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0g
QnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5
IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdl
dF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxm
Ll9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVj
dXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBl
eGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0g
c2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVj
dGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5
OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUs
IHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAg
cmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28u
ZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xv
Z19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAg
c2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAog
ICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWls
ZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRh
dHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2Zl
dGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9h
bGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNv
bXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGlu
ZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29y
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAg
ICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVu
c3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMu
cHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRq
X2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiBy
ZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9n
X2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBp
biBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2df
ZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNl
bGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAg
IHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRy
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9t
YW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0
cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRj
aF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxs
CiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21w
aWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUg
ODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAg
Y3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1
cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5
IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9l
eGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVy
YWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19l
dmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4g
c3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93
aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2
ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZl
bnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0
b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3Jl
X3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sK
ICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10K
QXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlk
ZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJv
cgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRf
dGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlv
bl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dl
dF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmog
PSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1
cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9y
bV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5w
eSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5n
ZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2Vs
Zi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhl
Y3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4g
ZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9
IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5l
Y3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUg
OTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVl
LCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAg
IHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdv
LmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
NjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2Vs
Zi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
dXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRl
X2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0
YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24g
PSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2Zp
bGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rh
c2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zv
cl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3Zl
cnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9y
ZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNr
CiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSdd
CkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQs
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBp
ZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJy
b3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4g
c2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBk
YXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFs
X3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5k
X3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3Jl
X3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tk
YXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNz
ZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRp
b25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0
YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZv
cm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwg
aW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lv
bl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFy
dGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3Jt
YXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGlu
IF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25f
b2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGlu
IHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVw
ZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5h
bF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2Fu
ZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9y
ZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNr
ZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIw
OSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9n
ZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAg
ICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxv
Y2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9y
X3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3Nl
cnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlv
bkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVy
IGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGlu
IHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRl
cm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1
NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9y
bWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50
LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25f
ZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVy
c2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9s
YXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9h
bmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3Rv
cmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFz
a2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNr
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBh
c3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2Vy
dGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlm
aWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFy
dGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sK
ICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJv
bV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVj
aXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2Vs
Zi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2
ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIg
aW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4g
dXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVy
bmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3Jt
YXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQu
dGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9m
cm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJz
aW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xh
eWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2Fu
ZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9y
ZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNr
ZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFz
c2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0
aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZp
ZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2Miwg
aW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmlu
dGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRh
dGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5k
X3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVb
J3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNl
bGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2Zp
bGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3Bh
dGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lv
bl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rh
c2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAg
IGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNz
ZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRo
ZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9y
ZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVf
aW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEw
MzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3Zl
cnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0
aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAg
c2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAog
ICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWls
ZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRh
dHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2Zl
dGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9h
bGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNv
bXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGlu
ZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29y
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAg
ICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVu
c3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMu
cHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRq
X2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiBy
ZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9n
X2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNz
ZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRp
b25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmll
ciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRl
ZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAg
ICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21f
dGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lw
ZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYu
X2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVu
dChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGlu
IHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVw
ZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5h
bF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2Fu
ZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9y
ZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNr
ZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFz
c2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0
aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9z
dGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5m
b3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEs
IGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNp
b25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVy
IGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGlu
IHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRl
cm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1
NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9y
bWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50
LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25f
ZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVy
c2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9s
YXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODks
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBk
YXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFs
X3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5k
X3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3Jl
X3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tk
YXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBp
biBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2df
ZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNl
bGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAg
IHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRy
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9t
YW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0
cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRj
aF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxs
CiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21w
aWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUg
ODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAg
Y3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1
cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5
IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9l
eGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVy
YWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19l
dmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4g
c3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3Rv
cmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFz
awogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEn
XQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYx
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQg
aWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVy
cm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0
IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3Rv
cmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRl
ZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0
aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBf
Z2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29i
aiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVf
bG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0
LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2Fu
ZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9y
ZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNr
ZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFz
c2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0
aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9z
dGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5m
b3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEs
IGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNp
b25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
c3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2
ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3
NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0
IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25F
cnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0
b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVu
dAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9i
dWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxm
LmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAg
ICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVy
biBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xv
bmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNl
bGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9m
ZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0
cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5
IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24u
Y3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vy
c29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBz
ZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
dXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5
cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1
LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdh
cyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3Rv
cmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVf
dGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawog
ICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpB
c3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMg
dGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3Jl
X2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4
NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODks
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5z
dXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5v
cm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3Qg
PSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIu
cHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYu
Z2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNl
bGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4
ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGlu
IGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3Ig
PSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25u
ZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5l
IDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1
ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAg
ICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5n
by5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNh
dXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVf
bG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAg
ICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxk
CiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJi
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1
aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdl
dGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5f
ZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNo
X2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0g
Y29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBs
aW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJz
b3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IK
ICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYu
ZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGls
cy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwg
ZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGlu
IHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRo
ZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9s
b2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9l
bnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAg
ICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2Fy
Z3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0g
bGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9f
CiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1
LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAg
IHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21w
aWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25u
ZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIs
IGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJz
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNv
cgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRq
X2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBs
aW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQs
IGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5k
X3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3Jl
X3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tk
YXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNz
ZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRp
b25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0
YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZv
cm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwg
aW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lv
bl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZl
bnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0
b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3Jl
X3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sK
ICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10K
QXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9y
ZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1
ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQo
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVu
dGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
NjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2Vs
Zi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBl
X2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxl
KGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3Jt
YXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5
ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4g
X2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9i
dWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dy
YXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5Iiwg
bGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9x
dWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9y
ZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRl
X3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVj
dXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2Vs
Zi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlv
bigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwg
aW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRy
YWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFp
c2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIu
dXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2Miwg
aW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmlu
dGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dp
bmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2Yg
dGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZl
bnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYu
X2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNl
bGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1
ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5h
Z2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihz
ZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9h
bGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAg
ICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxl
ci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4
LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vy
c29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVf
Y29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5Iiwg
bGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNf
dmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlz
ZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpk
amFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0
b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVu
dAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9i
dWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxm
LmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAg
ICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVy
biBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xv
bmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNl
bGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9m
ZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0
cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5
IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24u
Y3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vy
c29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBz
ZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
dXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5
cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1
LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQs
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBp
ZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJy
b3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4g
c2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFz
ayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVj
aXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tm
aWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5m
b3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRf
bGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwg
aW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZv
bGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3Vy
ZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3Jt
X3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0g
QnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5
IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdl
dF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxm
Ll9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVj
dXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBl
eGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0g
c2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVj
dGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5
OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUs
IHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAg
cmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28u
ZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xv
Z19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAg
c2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAog
ICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWls
ZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRh
dHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2Zl
dGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9h
bGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNv
bXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGlu
ZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29y
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAg
ICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVu
c3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMu
cHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRq
X2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiBy
ZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlm
aWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2df
ZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNl
bGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAg
IHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRy
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9t
YW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0
cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRj
aF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxs
CiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21w
aWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUg
ODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAg
Y3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1
cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5
IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9l
eGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVy
YWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmll
ciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBp
biB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50
ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAz
NTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZv
cm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVu
dC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9u
X2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3Zl
cnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRf
bGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVw
ZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5h
bF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBm
b2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1
cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9y
bV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5w
eSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5n
ZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2Vs
Zi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhl
Y3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4g
ZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9
IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5l
Y3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUg
OTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVl
LCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAg
IHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdv
LmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
NjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2Vs
Zi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
dXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRl
X2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0
YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24g
PSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2Zp
bGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rh
c2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zv
cl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3Zl
cnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2Jq
ZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4g
bWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5h
bWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwg
aW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9
IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4
LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBj
dXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdf
Y3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwog
ICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRo
X3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRh
dGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5k
X3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVb
J3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVf
dGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawog
ICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpB
c3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRl
bnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9y
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNh
dXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVf
c3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90
YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9u
X2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0
X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9
IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3Vy
ZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3Jt
X3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0g
QnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5
IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdl
dF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxm
Ll9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVj
dXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBl
eGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0g
c2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVj
dGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5
OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUs
IHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAg
cmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28u
ZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2
MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxm
LmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51
cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVf
YW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3Rh
dGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9
IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmls
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFz
a2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9y
X3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVy
c2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
ODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVu
dChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0
IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3Rv
cmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9y
ZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1
ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQo
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVf
bG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFz
ayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAg
YXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3Nl
cnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xv
Z19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwg
aW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9n
X2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2df
ZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGlu
IHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9i
dWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dy
YXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5Iiwg
bGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9x
dWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9y
ZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRl
X3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVj
dXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2Vs
Zi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlv
bigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwg
aW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRy
YWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFp
c2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIu
dXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19l
dmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
c3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2
ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3
NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0
IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25F
cnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0
b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVu
dAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9i
dWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxm
LmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAg
ICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVy
biBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xv
bmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNl
bGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9m
ZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0
cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5
IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24u
Y3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vy
c29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBz
ZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
dXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5
cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1
LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQs
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBp
ZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJy
b3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3Qg
Y2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9y
ZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQK
ICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVp
bGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5i
cmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAg
YnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4g
Z2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25l
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxm
Ll9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0
Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMg
PSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIs
IGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1
cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNv
cgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2Vs
Zi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0
aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBl
LCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwg
aW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRl
bnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9y
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNh
dXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVf
bG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAg
ICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxk
CiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJi
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1
aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdl
dGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5f
ZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNo
X2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0g
Y29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBs
aW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJz
b3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IK
ICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYu
ZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGls
cy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwg
ZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGlu
IHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRo
ZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9y
ZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVf
aW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEw
MzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3Zl
cnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0
aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAg
c2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAog
ICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWls
ZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRh
dHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2Zl
dGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9h
bGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNv
bXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGlu
ZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29y
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAg
ICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVu
c3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMu
cHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRq
X2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiBy
ZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9n
X2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBp
biBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIs
IGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5p
bnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBk
YXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2Fu
ZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRl
Wyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBz
ZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tm
aWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9w
YXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNp
b25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1
ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVf
YW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0
b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rh
c2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFz
ayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAg
YXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3Nl
cnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3Jl
X3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9p
bmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAz
MSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVy
c2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZp
ZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2Miwg
aW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmlu
dGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dp
bmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
MzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5m
b3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZl
bnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlv
bl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92
ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0
X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRl
X2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9z
dG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0
YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rh
c2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAg
IGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNz
ZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRo
ZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9s
b2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9l
bnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAg
ICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2Fy
Z3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0g
bGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9f
CiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1
LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAg
IHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21w
aWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25u
ZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIs
IGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJz
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNv
cgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRq
X2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBs
aW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQs
IGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5k
X3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3Jl
X3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tk
YXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNz
ZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRp
b25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19l
dmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4g
c3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93
aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2
ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZl
bnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0
b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3Jl
X3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sK
ICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10K
QXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlk
ZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJv
cgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRf
dGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlv
bl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dl
dF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmog
PSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1
cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9y
bV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5w
eSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5n
ZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2Vs
Zi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhl
Y3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4g
ZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9
IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5l
Y3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUg
OTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVl
LCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAg
IHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdv
LmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9s
b2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xv
Z19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwg
aW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRf
c3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVf
dGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2Rh
dGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
MzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3Nl
cnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlv
bkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
c3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3Rh
cnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9y
bWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBp
biBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9u
X29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYu
X2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNl
bGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1
ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5h
Z2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihz
ZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9h
bGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAg
ICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxl
ci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4
LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vy
c29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVf
Y29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5Iiwg
bGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNf
dmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlz
ZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpk
amFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBp
biBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1
cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJu
YWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9h
bmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3Rv
cmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFz
a2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
MDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5f
Z2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQog
ICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChs
b2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zv
cl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNz
ZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRp
b25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0
YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZv
cm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwg
aW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lv
bl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIg
aW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVu
dChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGlu
IHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQo
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBz
ZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRh
dGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxf
c3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRf
c3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVf
dGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2Rh
dGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
MzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3Nl
cnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlv
bkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVy
IGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGlu
IHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRl
cm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1
NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9y
bWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50
LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25f
ZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVy
c2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9s
YXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODks
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFz
ayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVj
aXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tm
aWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5m
b3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRf
bGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwg
aW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZv
bGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3Vy
ZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3Jt
X3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0g
QnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5
IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdl
dF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxm
Ll9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVj
dXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBl
eGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0g
c2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVj
dGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5
OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUs
IHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAg
cmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28u
ZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xv
Z19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAg
c2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAog
ICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWls
ZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRh
dHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2Zl
dGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9h
bGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNv
bXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGlu
ZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29y
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAg
ICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVu
c3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMu
cHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRq
X2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiBy
ZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9n
X2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNz
ZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRp
b25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19l
dmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
NzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2Vy
dCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9u
RXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZl
bnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQg
aWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVy
cm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0
IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3Rv
cmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlk
ZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJv
cgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3Rv
cmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBl
X2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92
ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBh
dGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xv
Z19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwg
aW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9n
X2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZp
ZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19l
dmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVy
IGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGlu
IHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRl
cm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1
NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9y
bWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50
LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25f
ZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVy
c2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9s
YXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODks
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBk
YXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFs
X3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5k
X3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3Jl
X3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tk
YXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5
LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dl
dF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAg
IGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9j
YWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3Jf
cGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4g
c3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBk
YXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2Fu
ZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRl
Wyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3Jl
X3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sK
ICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10K
QXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlk
ZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJv
cgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3Rv
cmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBl
X2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92
ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBh
dGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xv
Z19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFz
c2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0
aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2df
ZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGlu
IHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0
b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rh
c2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRh
J10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2
MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0
IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25F
cnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0
b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0
ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1h
dGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4g
X2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9v
YmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9l
bnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxm
Lm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdl
ci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2Vs
Zi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAg
c2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIu
ZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwg
aW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNv
ciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nv
bm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxp
bmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UK
ICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGph
bmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3Qg
Y2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9y
ZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQK
ICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVp
bGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5i
cmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAg
YnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4g
Z2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25l
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxm
Ll9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0
Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMg
PSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIs
IGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1
cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNv
cgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2Vs
Zi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0
aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBl
LCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwg
aW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMg
dGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3Jl
X2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4
NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODks
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5z
dXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5v
cm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3Qg
PSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIu
cHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYu
Z2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNl
bGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4
ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGlu
IGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3Ig
PSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25u
ZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5l
IDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1
ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAg
ICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5n
by5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNh
dXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVf
bG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAg
ICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxk
CiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJi
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1
aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdl
dGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5f
ZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNo
X2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0g
Y29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBs
aW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJz
b3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IK
ICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYu
ZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGls
cy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwg
ZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGlu
IHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50
aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xv
Z19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAg
c2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAog
ICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWls
ZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRh
dHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2Zl
dGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9h
bGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNv
bXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGlu
ZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29y
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAg
ICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVu
c3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMu
cHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRq
X2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiBy
ZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9n
X2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBp
biBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2df
ZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNl
bGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAg
IHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRy
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9t
YW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0
cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRj
aF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxs
CiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21w
aWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUg
ODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAg
Y3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1
cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5
IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9l
eGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVy
YWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19l
dmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4g
c3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBk
YXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2Fu
ZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRl
Wyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
ODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4g
dXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVy
bmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVw
ZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5h
bF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1Nywg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0
aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRh
c2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJv
bV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lv
bl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXll
cl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9n
X2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2df
ZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGlu
IHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9i
dWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dy
YXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5Iiwg
bGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9x
dWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9y
ZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRl
X3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVj
dXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2Vs
Zi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlv
bigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwg
aW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRy
YWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFp
c2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIu
dXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19l
dmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
c3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2
ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24g
d2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBz
dG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2Jq
ZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4g
bWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5h
bWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwg
aW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9
IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4
LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBj
dXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdf
Y3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwog
ICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRo
X3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dp
bmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2Yg
dGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZl
bnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYu
X2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNl
bGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1
ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5h
Z2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihz
ZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9h
bGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAg
ICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxl
ci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4
LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vy
c29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVf
Y29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5Iiwg
bGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNf
dmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlz
ZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpk
amFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0
b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVu
dAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9i
dWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxm
LmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAg
ICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVy
biBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xv
bmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNl
bGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9m
ZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0
cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5
IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24u
Y3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vy
c29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBz
ZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
dXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5
cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1
LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdh
cyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3Rv
cmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4
OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9l
bnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxm
Lm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdl
ci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2Vs
Zi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAg
c2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIu
ZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwg
aW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNv
ciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nv
bm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxp
bmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UK
ICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGph
bmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3Qg
Y2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9y
ZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQK
ICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVp
bGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5i
cmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAg
YnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4g
Z2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25l
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxm
Ll9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0
Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMg
PSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIs
IGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1
cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNv
cgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2Vs
Zi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0
aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBl
LCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwg
aW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMg
dGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3Jl
X2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4
NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODks
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5z
dXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5v
cm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3Qg
PSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIu
cHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYu
Z2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNl
bGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4
ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGlu
IGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3Ig
PSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25u
ZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5l
IDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1
ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAg
ICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5n
by5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNh
dXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVf
bG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAg
ICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxk
CiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJi
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1
aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdl
dGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5f
ZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNo
X2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0g
Y29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBs
aW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJz
b3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IK
ICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYu
ZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGls
cy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwg
ZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGlu
IHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRo
ZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9s
b2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9l
bnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAg
ICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2Fy
Z3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0g
bGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9f
CiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1
LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAg
IHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21w
aWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25u
ZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIs
IGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJz
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNv
cgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRq
X2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBs
aW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQs
IGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5k
X3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3Jl
X3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tk
YXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNz
ZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRp
b25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0
YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZv
cm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwg
aW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lv
bl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZl
bnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0
b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
ODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVu
dChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0
IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3Rv
cmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9y
ZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1
ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVf
YW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0
b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rh
c2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFz
ayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAg
YXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3Nl
cnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3Jl
X3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9p
bmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAz
MSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVy
c2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZp
ZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2Miwg
aW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmlu
dGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRh
dGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5k
X3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVb
J3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNl
bGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2Zp
bGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3Bh
dGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lv
bl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4
NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODks
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5z
dXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5v
cm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3Qg
PSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIu
cHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYu
Z2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNl
bGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4
ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGlu
IGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3Ig
PSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25u
ZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5l
IDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1
ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAg
ICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5n
by5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNl
bGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZv
bGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3Vy
ZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3Jt
X3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0g
QnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5
IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdl
dF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxm
Ll9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVj
dXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBl
eGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0g
c2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVj
dGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5
OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUs
IHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAg
cmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28u
ZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2
MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxm
LmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2df
ZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNl
bGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAg
IHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRy
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9t
YW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0
cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRj
aF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxs
CiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21w
aWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUg
ODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAg
Y3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1
cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5
IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9l
eGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVy
YWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmll
ciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2
ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZl
bnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0
b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
ODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVu
dChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0
IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3Rv
cmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9y
ZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1
ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQo
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVf
bG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0
LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBm
b2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1
cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9y
bV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5w
eSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5n
ZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2Vs
Zi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhl
Y3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4g
ZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9
IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5l
Y3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUg
OTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVl
LCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAg
IHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdv
LmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9s
b2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xv
Z19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwg
aW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9n
X2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2df
ZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGlu
IHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9i
dWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dy
YXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5Iiwg
bGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9x
dWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9y
ZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRl
X3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVj
dXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2Vs
Zi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlv
bigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwg
aW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRy
YWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFp
c2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIu
dXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19l
dmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
c3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2
ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3
NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0
IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25F
cnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0
b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVu
dAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9i
dWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxm
LmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAg
ICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVy
biBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xv
bmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNl
bGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9m
ZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0
cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5
IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24u
Y3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vy
c29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBz
ZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
dXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5
cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1
LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEs
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBp
ZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJy
b3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3Qg
Y2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9y
ZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVk
X3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRp
b25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9n
ZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2Jq
ID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5z
dXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5v
cm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3Qg
PSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIu
cHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYu
Z2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNl
bGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4
ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGlu
IGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3Ig
PSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25u
ZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5l
IDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1
ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAg
ICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5n
by5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNh
dXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVf
bG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAg
ICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxk
CiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJi
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1
aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdl
dGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5f
ZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNo
X2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0g
Y29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBs
aW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJz
b3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IK
ICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYu
ZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGls
cy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwg
ZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGlu
IHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRo
ZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9s
b2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9l
bnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAg
ICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2Fy
Z3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0g
bGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9f
CiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1
LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAg
IHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21w
aWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25u
ZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIs
IGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJz
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNv
cgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRq
X2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBs
aW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQs
IGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZv
bGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3Vy
ZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3Jt
X3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0g
QnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5
IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdl
dF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxm
Ll9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVj
dXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBl
eGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0g
c2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVj
dGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5
OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUs
IHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAg
cmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28u
ZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xv
Z19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAg
c2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAog
ICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWls
ZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRh
dHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2Zl
dGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9h
bGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNv
bXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGlu
ZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29y
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAg
ICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVu
c3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMu
cHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRq
X2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiBy
ZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9n
X2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNz
ZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRp
b25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19l
dmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
NzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2Vy
dCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9u
RXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIg
aW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRf
dGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAg
cmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rh
c2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVf
aW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9n
ZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAw
MSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQo
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVu
dGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9s
b2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRp
ZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3Rh
cnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNr
CiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zy
b21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3Jl
Y2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNl
bGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9i
dWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dy
YXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5Iiwg
bGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9x
dWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9y
ZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRl
X3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVj
dXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2Vs
Zi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlv
bigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwg
aW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRy
YWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFp
c2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIu
dXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19l
dmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
c3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2
ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3
NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0
IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25F
cnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0
b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVu
dAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9i
dWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxm
LmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAg
ICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVy
biBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xv
bmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNl
bGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9m
ZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0
cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5
IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24u
Y3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vy
c29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBz
ZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
dXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5
cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1
LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdh
cyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3Rv
cmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVf
dGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawog
ICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpB
c3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMg
dGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3Jl
X2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rh
c2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAg
IGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNz
ZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRo
ZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9s
b2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9l
bnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAg
ICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2Fy
Z3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0g
bGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9f
CiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1
LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAg
IHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21w
aWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25u
ZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIs
IGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJz
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNv
cgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRq
X2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBs
aW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
MDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5f
Z2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQog
ICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChs
b2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zv
cl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBp
biBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9z
dG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90
YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0
YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAz
NjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2Vy
dCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9u
RXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFy
dGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3Jt
YXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGlu
IF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25f
b2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0
IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3Rv
cmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlk
ZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJv
cgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBz
ZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRh
dGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxf
c3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlv
biA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNr
ZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21f
dGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25f
Zm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJf
dmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9i
dWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dy
YXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5Iiwg
bGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9x
dWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9y
ZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRl
X3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVj
dXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2Vs
Zi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlv
bigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwg
aW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRy
YWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFp
c2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIu
dXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19l
dmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVy
IGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGlu
IHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRl
cm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRl
X2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9z
dG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0
YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxm
Ll9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxl
CiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRo
KGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25f
Zm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9l
bnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAg
ICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2Fy
Z3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0g
bGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9f
CiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1
LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAg
IHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21w
aWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25u
ZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIs
IGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJz
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNv
cgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRq
X2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBs
aW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQs
IGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5k
X3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3Jl
X3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tk
YXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNz
ZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRp
b25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19l
dmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4g
c3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93
aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2
ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIg
aW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4g
dXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVy
bmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVw
ZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5h
bF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1Nywg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0
aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRh
c2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJv
bV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lv
bl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXll
cl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRf
c3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVf
dGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2Rh
dGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGlu
IHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24g
PSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2Zp
bGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rh
c2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zv
cl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3Zl
cnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2Jq
ZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4g
bWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5h
bWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwg
aW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9
IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4
LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBj
dXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdf
Y3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwog
ICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRo
X3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dp
bmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGlu
IHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRl
cm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRl
X2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9z
dG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0
YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rh
c2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAg
IGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNz
ZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRo
ZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9y
ZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVf
aW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEw
MzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3Zl
cnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0
aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAg
c2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAog
ICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWls
ZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRh
dHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2Zl
dGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9h
bGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNv
bXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGlu
ZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29y
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAg
ICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVu
c3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMu
cHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRq
X2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiBy
ZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9n
X2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNz
ZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRp
b25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmll
ciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRl
ZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAg
ICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21f
dGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lw
ZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYu
X2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVu
dChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGlu
IHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVw
ZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5h
bF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBm
b2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1
cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9y
bV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5w
eSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5n
ZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2Vs
Zi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhl
Y3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4g
ZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9
IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5l
Y3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUg
OTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVl
LCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAg
IHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdv
LmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9s
b2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRp
ZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYy
LCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYu
aW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVw
ZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9h
bmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0
ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0g
c2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNr
ZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3Jf
cGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJz
aW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRl
X2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9z
dG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0
YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rh
c2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAg
IGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNz
ZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRo
ZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9y
ZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVf
aW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEw
MzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3Zl
cnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0
aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAg
c2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAog
ICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWls
ZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRh
dHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2Zl
dGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9h
bGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNv
bXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGlu
ZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29y
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAg
ICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVu
c3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMu
cHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRq
X2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiBy
ZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9n
X2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBp
biBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9z
dG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90
YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0
YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
NzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2Vy
dCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9u
RXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIg
aW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRf
dGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAg
cmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rh
c2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVf
aW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9n
ZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAw
MSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVw
ZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5h
bF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRh
dGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxf
c3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlv
biA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNr
ZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21f
dGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25f
Zm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJf
dmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVw
ZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9h
bmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0
ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9y
ZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNr
CiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSdd
CkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQs
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBp
ZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJy
b3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4g
c2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFz
ayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVj
aXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tm
aWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5m
b3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRf
bGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwg
aW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0
ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9z
dGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9z
dG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90
YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0
YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwg
aW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRf
cmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBs
YXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2Fs
ZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3Bh
dGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQg
aWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVy
cm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGlu
IHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rh
c2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJl
Y2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNr
ZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2lu
Zm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0
X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEs
IGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRh
dGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxf
c3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRf
c3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVf
dGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2Rh
dGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGlu
IHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0
b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rh
c2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRh
J10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24g
d2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBz
dG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9y
ZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNr
CiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSdd
CkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEs
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBp
ZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJy
b3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3Qg
Y2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9y
ZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVk
X3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRp
b25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9n
ZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2Jq
ID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5z
dXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5v
cm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3Qg
PSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIu
cHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYu
Z2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNl
bGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4
ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGlu
IGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3Ig
PSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25u
ZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5l
IDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1
ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAg
ICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5n
by5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNl
bGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZv
bGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lw
ZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmls
ZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9y
bWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xh
eWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGlu
IF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51
cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVf
YW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3Rh
dGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3Rv
cmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFz
awogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEn
XQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQg
aWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVy
cm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGlu
IHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVw
ZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5h
bF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1Nywg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0
aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRh
c2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJv
bV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lv
bl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXll
cl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRf
c3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVf
dGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2Rh
dGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
MzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3Nl
cnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlv
bkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
c3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3Rh
cnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9y
bWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBp
biBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9u
X29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYu
X2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNl
bGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1
ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5h
Z2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihz
ZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9h
bGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAg
ICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxl
ci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4
LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vy
c29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVf
Y29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5Iiwg
bGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNf
dmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlz
ZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpk
amFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0
b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVu
dAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9i
dWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxm
LmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAg
ICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVy
biBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xv
bmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNl
bGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9m
ZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0
cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5
IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24u
Y3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vy
c29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBz
ZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
dXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5
cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1
LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdh
cyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3Rv
cmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4
OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9l
bnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxm
Lm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdl
ci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2Vs
Zi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAg
c2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIu
ZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwg
aW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNv
ciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nv
bm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxp
bmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UK
ICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGph
bmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3Qg
Y2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9y
ZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQK
ICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVp
bGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5i
cmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAg
YnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4g
Z2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25l
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxm
Ll9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0
Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMg
PSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIs
IGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1
cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNv
cgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2Vs
Zi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0
aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBl
LCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwg
aW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMg
dGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3Jl
X2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4
NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODks
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5z
dXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5v
cm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3Qg
PSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIu
cHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYu
Z2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNl
bGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4
ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGlu
IGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3Ig
PSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25u
ZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5l
IDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1
ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAg
ICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5n
by5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNh
dXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVf
bG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAg
ICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxk
CiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJi
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1
aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdl
dGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5f
ZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNo
X2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0g
Y29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBs
aW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJz
b3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IK
ICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYu
ZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGls
cy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwg
ZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGlu
IHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRo
ZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9s
b2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9l
bnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAg
ICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2Fy
Z3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0g
bGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9f
CiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1
LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAg
IHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21w
aWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25u
ZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIs
IGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJz
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNv
cgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRq
X2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBs
aW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNr
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBh
c3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2Vy
dGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlm
aWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFy
dGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sK
ICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJv
bV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVj
aXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2Vs
Zi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2
ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZl
bnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0
b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
ODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVu
dChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0
IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3Rv
cmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9y
ZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1
ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQo
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVf
bG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFz
ayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAg
YXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3Nl
cnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRp
ZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9n
X2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZp
ZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0
ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawog
ICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9t
X3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNp
cGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxm
Ll9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2Yg
dGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZl
bnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYu
X2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNl
bGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1
ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5h
Z2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihz
ZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9h
bGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAg
ICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxl
ci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4
LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vy
c29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVf
Y29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5Iiwg
bGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNf
dmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlz
ZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpk
amFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0
b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVu
dAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9i
dWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxm
LmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAg
ICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVy
biBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xv
bmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNl
bGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9m
ZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0
cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5
IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24u
Y3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vy
c29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBz
ZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
dXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5
cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1
LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQs
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBp
ZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJy
b3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4g
c2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBk
YXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFs
X3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRp
b24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFz
a2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9t
X3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9u
X2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVy
X3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIs
IGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5p
bnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93
aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2
ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIg
aW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRf
dGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAg
cmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rh
c2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVf
aW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9n
ZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAw
MSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQo
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVf
bG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0
LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRh
dGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxf
c3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRf
c3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVf
dGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2Rh
dGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDks
IGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0
X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAg
bGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2Nh
bGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9w
YXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24g
d2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBz
dG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9y
ZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNr
CiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSdd
CkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQs
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBp
ZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJy
b3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4g
c2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5z
dXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5v
cm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3Qg
PSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIu
cHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYu
Z2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNl
bGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4
ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGlu
IGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3Ig
PSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25u
ZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5l
IDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1
ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAg
ICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5n
by5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNl
bGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZv
bGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lw
ZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmls
ZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9y
bWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xh
eWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGlu
IF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIs
IGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5p
bnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBk
YXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2Fu
ZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRl
Wyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0
ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRf
c3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsn
dGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1
ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVw
ZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5h
bF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRh
dGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxf
c3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBl
X2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxl
KGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3Jt
YXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5
ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4g
X2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9i
dWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dy
YXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5Iiwg
bGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9x
dWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9y
ZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRl
X3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVj
dXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2Vs
Zi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlv
bigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwg
aW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRy
YWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFp
c2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIu
dXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19l
dmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVy
IGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGlu
IHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRl
cm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1
NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9y
bWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50
LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25f
ZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVy
c2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9s
YXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9h
bmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3Rv
cmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFz
a2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQs
IGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5k
X3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3Jl
X3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tk
YXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNz
ZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRp
b25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0
YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZv
cm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwg
aW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lv
bl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZl
bnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQg
aWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVy
cm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0
IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3Rv
cmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlk
ZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJv
cgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBz
ZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBm
b2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNr
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNp
cGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2Zp
bGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZv
cm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9s
YXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBp
biBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
dXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRl
X2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0
YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVw
ZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9h
bmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0
ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2Jq
ZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4g
bWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5h
bWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwg
aW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9
IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4
LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBj
dXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdf
Y3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwog
ICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRo
X3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dp
bmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGlu
IHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRl
cm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4
OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9l
bnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxm
Lm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdl
ci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2Vs
Zi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAg
c2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIu
ZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwg
aW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNv
ciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nv
bm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxp
bmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UK
ICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGph
bmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4g
c2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBk
YXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFs
X3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRp
b24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFz
a2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9t
X3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9u
X2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVy
X3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIs
IGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5p
bnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBk
YXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2Fu
ZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRl
Wyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBz
ZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tm
aWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9w
YXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNp
b25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1
ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVf
YW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0
b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rh
c2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFz
ayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAg
YXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3Nl
cnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3Jl
X3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9p
bmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAz
MSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVy
c2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2df
ZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGlu
IHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0
b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rh
c2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRh
J10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3
NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0
IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25F
cnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBp
biBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1
cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJu
YWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcs
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1h
dGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50
YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zy
b21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNp
b25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5
ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZv
bGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3Vy
ZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3Jt
X3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0g
QnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5
IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdl
dF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxm
Ll9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVj
dXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBl
eGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0g
c2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVj
dGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5
OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUs
IHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAg
cmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28u
ZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2
MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxm
LmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51
cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVf
YW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3Rh
dGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3Rv
cmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFz
awogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEn
XQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGlu
IHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3Jl
Y2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5
ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZp
bGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRo
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9y
ZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAg
ICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFz
c2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVu
dGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9z
dGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rh
c2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25f
ZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRf
cmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0g
c2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9n
X2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZp
ZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19l
dmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
c3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2
ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3
NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0
IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25F
cnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0
b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVu
dAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9i
dWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxm
LmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAg
ICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVy
biBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xv
bmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNl
bGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9m
ZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0
cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5
IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24u
Y3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vy
c29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBz
ZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
dXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5
cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1
LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdh
cyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3Rv
cmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVf
dGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawog
ICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpB
c3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMg
dGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3Jl
X2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rh
c2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAg
IGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNz
ZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRo
ZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9s
b2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9l
bnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAg
ICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2Fy
Z3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0g
bGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9f
CiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1
LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAg
IHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21w
aWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25u
ZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIs
IGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJz
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNv
cgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRq
X2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBs
aW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNr
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBh
c3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2Vy
dGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVf
c3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2lu
Zm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMx
LCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJz
aW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNl
bGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAg
IHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRy
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9t
YW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0
cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRj
aF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxs
CiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21w
aWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUg
ODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAg
Y3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1
cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5
IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9l
eGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVy
YWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19l
dmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4g
c3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93
aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2
ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZl
bnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0
b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
ODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVu
dChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGlu
IHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVw
ZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5h
bF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1Nywg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0
aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRh
c2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJv
bV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lv
bl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXll
cl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRf
c3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVf
dGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2Rh
dGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
MzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3Nl
cnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlv
bkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
c3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3Rh
cnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9y
bWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBp
biBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9u
X29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYu
X2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNl
bGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1
ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5h
Z2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihz
ZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9h
bGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAg
ICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxl
ci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4
LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vy
c29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVf
Y29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5Iiwg
bGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNf
dmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlz
ZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpk
amFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0
b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVu
dAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9i
dWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxm
LmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAg
ICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVy
biBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xv
bmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNl
bGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9m
ZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0
cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5
IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24u
Y3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vy
c29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBz
ZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
dXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5
cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1
LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdh
cyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3Rv
cmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVf
dGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawog
ICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpB
c3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRl
bnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9y
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNl
bGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZv
bGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lw
ZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmls
ZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9y
bWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xh
eWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGlu
IF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIs
IGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5p
bnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBk
YXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2Fu
ZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRl
Wyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
ODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVu
dChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0
IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3Rv
cmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9y
ZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1
ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVf
YW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0
b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rh
c2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0
LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRh
dGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxf
c3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRf
c3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVf
dGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2Rh
dGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDks
IGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0
X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAg
bGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2Nh
bGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9w
YXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3
NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0
IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25F
cnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBp
biBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICBy
ZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFz
a2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9p
bmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dl
dF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAx
LCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5z
dXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5v
cm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3Qg
PSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIu
cHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYu
Z2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNl
bGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4
ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGlu
IGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3Ig
PSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25u
ZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5l
IDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1
ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAg
ICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5n
by5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNh
dXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVf
bG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAg
ICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxk
CiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJi
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1
aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdl
dGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5f
ZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNo
X2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0g
Y29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBs
aW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJz
b3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IK
ICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYu
ZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGls
cy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwg
ZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGlu
IHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRo
ZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9s
b2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9l
bnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAg
ICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2Fy
Z3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0g
bGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9f
CiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1
LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAg
IHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21w
aWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25u
ZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIs
IGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJz
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNv
cgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRq
X2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBs
aW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQs
IGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5k
X3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3Jl
X3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tk
YXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBp
biBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51
cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVf
YW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3Rh
dGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3Rv
cmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFz
awogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEn
XQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGlu
IHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3Jl
Y2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5
ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZp
bGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRo
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlk
ZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJv
cgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVu
dGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
NjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2Vs
Zi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
dXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRl
X2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0
YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0
b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rh
c2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRh
J10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24g
d2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBp
biBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9y
ZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxh
eWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxm
aWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0
aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9i
dWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxm
LmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAg
ICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVy
biBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xv
bmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNl
bGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9m
ZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0
cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5
IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24u
Y3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vy
c29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBz
ZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
dXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5
cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1
LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdh
cyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4g
c3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVj
aXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXll
cl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmls
ZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgK
ICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVp
bGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5i
cmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAg
YnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4g
Z2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25l
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxm
Ll9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0
Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMg
PSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIs
IGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1
cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNv
cgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2Vs
Zi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0
aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBl
LCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwg
aW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMg
dGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3Jl
X2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4
NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9h
bmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3Rv
cmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFz
a2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNr
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBh
c3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2Vy
dGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9n
X2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNz
ZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRp
b25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmll
ciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBp
biB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50
ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAz
NTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZv
cm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVu
dC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9u
X2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3Zl
cnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRf
bGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQo
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVf
bG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFz
ayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAg
YXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3Nl
cnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRp
ZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3Rh
cnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNr
CiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zy
b21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3Jl
Y2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNl
bGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9i
dWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dy
YXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5Iiwg
bGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9x
dWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9y
ZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRl
X3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVj
dXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2Vs
Zi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlv
bigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwg
aW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRy
YWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFp
c2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIu
dXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2Miwg
aW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmlu
dGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dp
bmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2Yg
dGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZl
bnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYu
X2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNl
bGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1
ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5h
Z2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihz
ZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9h
bGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAg
ICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxl
ci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4
LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vy
c29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVf
Y29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5Iiwg
bGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNf
dmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlz
ZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpk
amFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0
b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVu
dAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9i
dWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxm
LmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAg
ICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVy
biBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xv
bmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNl
bGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9m
ZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0
cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5
IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24u
Y3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vy
c29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBz
ZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
dXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5
cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1
LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQs
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBp
ZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJy
b3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4g
c2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBk
YXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFs
X3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRp
b24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFz
a2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9t
X3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9u
X2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVy
X3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIs
IGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5p
bnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBk
YXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2Fu
ZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRl
Wyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBz
ZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tm
aWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9w
YXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNp
b25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1
ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQo
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVf
bG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0
LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBm
b2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1
cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9y
bV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5w
eSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5n
ZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2Vs
Zi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhl
Y3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4g
ZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9
IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5l
Y3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUg
OTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVl
LCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAg
IHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdv
LmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
NjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2Vs
Zi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
dXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRl
X2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0
YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24g
PSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2Zp
bGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rh
c2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zv
cl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3Zl
cnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9y
ZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNr
CiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSdd
CkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdh
cyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3Rv
cmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVf
dGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawog
ICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpB
c3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMg
dGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3Jl
X2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4
NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9h
bmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3Rv
cmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFz
a2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQs
IGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZv
bGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3Vy
ZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3Jt
X3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0g
QnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5
IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdl
dF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxm
Ll9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVj
dXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBl
eGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0g
c2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVj
dGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5
OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUs
IHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAg
cmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28u
ZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xv
Z19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAg
c2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAog
ICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWls
ZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRh
dHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2Zl
dGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9h
bGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNv
bXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGlu
ZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29y
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAg
ICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVu
c3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMu
cHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRq
X2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiBy
ZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlm
aWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2df
ZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNl
bGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAg
IHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRy
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9t
YW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0
cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRj
aF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxs
CiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21w
aWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUg
ODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAg
Y3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1
cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5
IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9l
eGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVy
YWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmll
ciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2
ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFy
dGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3Jt
YXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGlu
IF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25f
b2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0
IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3Rv
cmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9y
ZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1
ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQo
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBz
ZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBm
b2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1
cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9y
bV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5w
eSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5n
ZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2Vs
Zi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhl
Y3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4g
ZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9
IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5l
Y3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUg
OTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVl
LCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAg
IHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdv
LmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9s
b2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRp
ZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3Rh
cnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNr
CiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zy
b21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3Jl
Y2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNl
bGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9i
dWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dy
YXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5Iiwg
bGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9x
dWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9y
ZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRl
X3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVj
dXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2Vs
Zi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlv
bigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwg
aW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRy
YWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFp
c2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIu
dXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19l
dmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
c3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2
ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24g
d2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBz
dG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2Jq
ZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4g
bWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5h
bWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwg
aW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9
IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4
LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBj
dXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdf
Y3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwog
ICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRo
X3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dp
bmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2Yg
dGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZl
bnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYu
X2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNl
bGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1
ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5h
Z2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihz
ZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9h
bGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAg
ICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxl
ci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4
LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vy
c29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVf
Y29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5Iiwg
bGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNf
dmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlz
ZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpk
amFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0
b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVu
dAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9i
dWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxm
LmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAg
ICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVy
biBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xv
bmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNl
bGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9m
ZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0
cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5
IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24u
Y3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vy
c29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBz
ZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
dXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5
cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1
LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdh
cyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3Rv
cmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4
OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9l
bnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxm
Lm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdl
ci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2Vs
Zi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAg
c2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIu
ZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwg
aW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNv
ciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nv
bm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxp
bmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UK
ICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGph
bmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4g
c2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBk
YXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFs
X3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRp
b24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFz
a2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9t
X3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9u
X2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVy
X3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9z
dG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90
YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0
YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4g
c3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93
aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2
ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIg
aW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4g
dXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVy
bmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVf
YW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0
b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rh
c2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYu
X2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUK
ICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgo
bG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9m
b3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFz
c2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0
aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2df
ZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGlu
IHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0
b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rh
c2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRh
J10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2
MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0
IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25F
cnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0
b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0
ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1h
dGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4g
X2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9v
YmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9l
bnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxm
Lm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdl
ci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2Vs
Zi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAg
c2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIu
ZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwg
aW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNv
ciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nv
bm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxp
bmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UK
ICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGph
bmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4g
c2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBk
YXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFs
X3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZv
bGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3Vy
ZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3Jt
X3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0g
QnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5
IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdl
dF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxm
Ll9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVj
dXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBl
eGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0g
c2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVj
dGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5
OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUs
IHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAg
cmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28u
ZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2
MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxm
LmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51
cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVf
YW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3Rh
dGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9
IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmls
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFz
a2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9y
X3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVy
c2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
ODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVu
dChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0
IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3Rv
cmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9y
ZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1
ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVf
YW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0
b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rh
c2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFz
ayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAg
YXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3Nl
cnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3Jl
X3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9p
bmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAz
MSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVy
c2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2df
ZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3Nl
cnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlv
bkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVy
IGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGlu
IHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRl
cm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1
NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9y
bWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50
LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25f
ZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVy
c2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9s
YXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODks
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBk
YXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFs
X3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5k
X3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3Jl
X3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tk
YXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBp
biBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2df
ZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNl
bGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAg
IHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRy
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9t
YW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0
cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRj
aF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxs
CiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21w
aWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUg
ODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAg
Y3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1
cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5
IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9l
eGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVy
YWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19l
dmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
NzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2Vy
dCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9u
RXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIg
aW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRf
dGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAg
cmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rh
c2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVf
aW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9n
ZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAw
MSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQo
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBz
ZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBm
b2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1
cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9y
bV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5w
eSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5n
ZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2Vs
Zi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhl
Y3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4g
ZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9
IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5l
Y3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUg
OTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVl
LCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAg
IHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdv
LmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9s
b2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRp
ZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYy
LCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYu
aW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9i
dWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dy
YXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5Iiwg
bGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9x
dWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9y
ZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRl
X3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVj
dXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2Vs
Zi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlv
bigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwg
aW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRy
YWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFp
c2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIu
dXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0
ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawog
ICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9t
X3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNp
cGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxm
Ll9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGlu
IHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRl
cm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRl
X2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9z
dG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0
YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rh
c2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAg
IGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNz
ZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRo
ZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9y
ZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVf
aW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEw
MzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3Zl
cnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0
aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAg
c2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAog
ICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWls
ZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRh
dHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2Zl
dGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9h
bGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNv
bXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGlu
ZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29y
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAg
ICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVu
c3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMu
cHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRq
X2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiBy
ZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlm
aWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFy
dGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sK
ICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJv
bV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVj
aXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2Vs
Zi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2
ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZl
bnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQg
aWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVy
cm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0
IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3Rv
cmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9y
ZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAg
ICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFz
c2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVf
bG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFz
ayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAg
YXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3Nl
cnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRp
ZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYy
LCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYu
aW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9p
bmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShl
dmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0
aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVy
X3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9n
ZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2Jq
ZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4g
bWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5h
bWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwg
aW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9
IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4
LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBj
dXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdf
Y3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwog
ICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRo
X3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRh
dGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5k
X3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVb
J3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNl
bGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2Zp
bGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3Bh
dGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lv
bl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rh
c2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAg
IGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNz
ZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRo
ZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9s
b2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9l
bnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAg
ICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2Fy
Z3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0g
bGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9f
CiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1
LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAg
IHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21w
aWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25u
ZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIs
IGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJz
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNv
cgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRq
X2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBs
aW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQs
IGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZv
bGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3Vy
ZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3Jt
X3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0g
QnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5
IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdl
dF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxm
Ll9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVj
dXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBl
eGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0g
c2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVj
dGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5
OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUs
IHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAg
cmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28u
ZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2
MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxm
LmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51
cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVf
YW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3Rh
dGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9
IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmls
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFz
a2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9y
X3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVy
c2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0
ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRf
c3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsn
dGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAg
ICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFz
c2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVf
bG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0
LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2Fu
ZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9y
ZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNr
ZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFz
c2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0
aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9z
dGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5m
b3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEs
IGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNp
b25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVy
IGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2Yg
dGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZl
bnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYu
X2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNl
bGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1
ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5h
Z2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihz
ZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9h
bGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAg
ICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxl
ci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4
LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vy
c29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVf
Y29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5Iiwg
bGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNf
dmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlz
ZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpk
amFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0
b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVu
dAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9i
dWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxm
LmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAg
ICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVy
biBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xv
bmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNl
bGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9m
ZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0
cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5
IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24u
Y3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vy
c29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBz
ZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
dXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5
cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1
LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQs
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBp
ZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJy
b3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4g
c2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFz
ayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVj
aXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tm
aWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5m
b3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRf
bGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwg
aW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0
ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9z
dGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51
cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVf
YW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3Rh
dGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3Rv
cmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFz
awogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEn
XQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGlu
IHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3Jl
Y2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5
ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZp
bGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRo
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlk
ZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJv
cgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBz
ZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRh
dGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxf
c3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlv
biA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNr
ZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21f
dGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25f
Zm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJf
dmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0
b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rh
c2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRh
J10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3
NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0
IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25F
cnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBp
biBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICBy
ZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFz
a2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9p
bmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dl
dF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAx
LCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5z
dXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5v
cm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3Qg
PSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIu
cHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYu
Z2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNl
bGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4
ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGlu
IGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3Ig
PSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25u
ZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5l
IDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1
ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAg
ICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5n
by5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNh
dXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVf
bG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAg
ICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxk
CiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJi
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1
aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdl
dGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5f
ZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNo
X2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0g
Y29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBs
aW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJz
b3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IK
ICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYu
ZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGls
cy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwg
ZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGlu
IHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRo
ZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9s
b2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9l
bnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAg
ICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2Fy
Z3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0g
bGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9f
CiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1
LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAg
IHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21w
aWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25u
ZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIs
IGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJz
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNv
cgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRq
X2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBs
aW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNr
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBh
c3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2Vy
dGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlm
aWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFy
dGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sK
ICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJv
bV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVj
aXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2Vs
Zi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBp
biB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50
ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0
ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRf
c3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsn
dGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAg
ICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFz
c2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3Rv
cmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBl
X2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92
ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBh
dGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRp
ZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYy
LCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYu
aW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9i
dWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dy
YXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5Iiwg
bGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9x
dWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9y
ZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRl
X3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVj
dXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2Vs
Zi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlv
bigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwg
aW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRy
YWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFp
c2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIu
dXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19l
dmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
c3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2
ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3
NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0
IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25F
cnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBp
biBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1
cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJu
YWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcs
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1h
dGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50
YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zy
b21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNp
b25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5
ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5k
X3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3Jl
X3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tk
YXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNz
ZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRp
b25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmll
ciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRl
ZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAg
ICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21f
dGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lw
ZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYu
X2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVu
dChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0
IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3Rv
cmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9y
ZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAg
ICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFz
c2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVf
bG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0
LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBm
b2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1
cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9y
bV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5w
eSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5n
ZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2Vs
Zi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhl
Y3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4g
ZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9
IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5l
Y3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUg
OTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVl
LCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAg
IHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdv
LmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9s
b2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xv
Z19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFz
c2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0
aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2df
ZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGlu
IHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0
b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rh
c2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRh
J10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24g
d2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBz
dG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0g
c2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNr
ZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3Jf
cGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJz
aW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4
OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9l
bnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxm
Lm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdl
ci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2Vs
Zi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAg
c2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIu
ZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwg
aW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNv
ciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nv
bm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxp
bmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UK
ICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGph
bmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3Qg
Y2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9y
ZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQK
ICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVp
bGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5i
cmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAg
YnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4g
Z2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25l
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxm
Ll9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0
Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMg
PSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIs
IGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1
cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNv
cgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2Vs
Zi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0
aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBl
LCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwg
aW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMg
dGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3Jl
X2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4
NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODks
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5z
dXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5v
cm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3Qg
PSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIu
cHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYu
Z2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNl
bGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4
ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGlu
IGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3Ig
PSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25u
ZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5l
IDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1
ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAg
ICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5n
by5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNh
dXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVf
bG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAg
ICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxk
CiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJi
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1
aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdl
dGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5f
ZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNo
X2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0g
Y29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBs
aW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJz
b3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IK
ICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYu
ZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGls
cy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwg
ZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGlu
IHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRo
ZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9s
b2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9l
bnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAg
ICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2Fy
Z3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0g
bGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9f
CiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1
LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAg
IHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21w
aWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25u
ZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIs
IGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJz
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNv
cgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRq
X2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBs
aW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQs
IGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZv
bGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3Vy
ZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3Jt
X3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0g
QnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5
IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdl
dF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxm
Ll9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVj
dXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBl
eGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0g
c2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVj
dGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5
OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUs
IHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAg
cmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28u
ZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xv
Z19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAg
c2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAog
ICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWls
ZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRh
dHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2Zl
dGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9h
bGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNv
bXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGlu
ZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29y
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAg
ICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVu
c3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMu
cHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRq
X2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiBy
ZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9n
X2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBp
biBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51
cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVf
YW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3Rh
dGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBk
YXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2Fu
ZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRl
Wyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBz
ZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tm
aWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9w
YXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNp
b25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1
ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQo
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVf
bG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0
LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2Fu
ZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9y
ZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNr
ZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFz
c2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0
aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9z
dGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5m
b3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEs
IGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNp
b25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVy
IGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGlu
IHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRl
cm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4
OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9l
bnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxm
Lm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdl
ci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2Vs
Zi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAg
c2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIu
ZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwg
aW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNv
ciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nv
bm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxp
bmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UK
ICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGph
bmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4g
c2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5z
dXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5v
cm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3Qg
PSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIu
cHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYu
Z2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNl
bGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4
ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGlu
IGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3Ig
PSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25u
ZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5l
IDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1
ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAg
ICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5n
by5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNh
dXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVf
bG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAg
ICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxk
CiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJi
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1
aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdl
dGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5f
ZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNo
X2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0g
Y29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBs
aW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJz
b3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IK
ICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYu
ZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGls
cy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwg
ZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGlu
IHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRo
ZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9s
b2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9l
bnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAg
ICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2Fy
Z3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0g
bGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9f
CiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1
LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAg
IHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21w
aWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25u
ZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIs
IGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJz
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNv
cgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRq
X2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBs
aW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQs
IGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZv
bGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3Vy
ZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3Jt
X3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0g
QnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5
IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdl
dF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxm
Ll9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVj
dXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBl
eGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0g
c2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVj
dGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5
OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUs
IHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAg
cmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28u
ZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2
MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxm
LmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51
cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVf
YW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3Rh
dGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9
IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmls
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFz
a2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9y
X3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVy
c2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
ODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4g
dXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVy
bmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVf
YW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0
b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rh
c2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFz
ayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAg
YXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3Nl
cnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3Jl
X3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9p
bmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAz
MSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVy
c2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2df
ZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3Nl
cnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlv
bkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVy
IGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2Yg
dGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVk
X3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAg
IHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90
YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBl
X2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5f
Z2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEw
MDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1
cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJu
YWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9h
bmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3Rv
cmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFz
a2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQs
IGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0
ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9z
dGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9z
dG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90
YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0
YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwg
aW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRf
cmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBs
YXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2Fs
ZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3Bh
dGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0
b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3Jl
X3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sK
ICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10K
QXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9y
ZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1
ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVw
ZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5h
bF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2Fu
ZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9y
ZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNr
ZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIw
OSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9n
ZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAg
ICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxv
Y2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9y
X3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGlu
IHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9i
dWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dy
YXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5Iiwg
bGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9x
dWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9y
ZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRl
X3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVj
dXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2Vs
Zi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlv
bigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwg
aW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRy
YWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFp
c2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIu
dXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2Miwg
aW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmlu
dGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRh
dGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5k
X3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVb
J3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVf
dGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawog
ICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpB
c3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMg
dGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3Jl
X2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxm
Ll9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxl
CiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRo
KGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25f
Zm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9l
bnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAg
ICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2Fy
Z3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0g
bGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9f
CiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1
LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAg
IHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21w
aWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25u
ZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIs
IGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJz
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNv
cgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRq
X2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBs
aW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQs
IGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZv
bGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3Vy
ZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3Jt
X3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0g
QnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5
IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdl
dF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxm
Ll9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVj
dXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBl
eGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0g
c2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVj
dGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5
OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUs
IHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAg
cmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28u
ZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xv
Z19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAg
c2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAog
ICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWls
ZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRh
dHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2Zl
dGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9h
bGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNv
bXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGlu
ZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29y
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAg
ICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVu
c3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMu
cHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRq
X2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiBy
ZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlm
aWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2df
ZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNl
bGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAg
IHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRy
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9t
YW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0
cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRj
aF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxs
CiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21w
aWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUg
ODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAg
Y3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1
cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5
IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9l
eGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVy
YWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19l
dmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
NzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2Vy
dCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9u
RXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIg
aW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRf
dGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAg
cmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rh
c2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVf
aW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9n
ZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAw
MSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVw
ZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5h
bF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRh
dGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxf
c3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlv
biA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNr
ZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21f
dGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25f
Zm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJf
dmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9i
dWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dy
YXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5Iiwg
bGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9x
dWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9y
ZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRl
X3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVj
dXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2Vs
Zi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlv
bigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwg
aW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRy
YWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFp
c2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIu
dXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2Miwg
aW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmlu
dGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRh
dGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5k
X3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVb
J3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4
OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9l
bnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxm
Lm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdl
ci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2Vs
Zi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAg
c2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIu
ZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwg
aW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNv
ciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nv
bm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxp
bmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UK
ICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGph
bmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3Qg
Y2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9y
ZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQK
ICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVp
bGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5i
cmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAg
YnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4g
Z2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25l
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxm
Ll9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0
Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMg
PSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIs
IGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1
cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNv
cgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2Vs
Zi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0
aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBl
LCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwg
aW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMg
dGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3Jl
X2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4
NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9h
bmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3Rv
cmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFz
a2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNr
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBh
c3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2Vy
dGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVf
c3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2lu
Zm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMx
LCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJz
aW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNl
bGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAg
IHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRy
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9t
YW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0
cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRj
aF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxs
CiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21w
aWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUg
ODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAg
Y3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1
cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5
IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9l
eGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVy
YWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19l
dmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
NzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2Vy
dCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9u
RXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIg
aW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRf
dGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAg
cmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rh
c2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVf
aW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9n
ZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAw
MSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQo
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBz
ZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBm
b2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1
cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9y
bV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5w
eSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5n
ZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2Vs
Zi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhl
Y3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4g
ZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9
IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5l
Y3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUg
OTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVl
LCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAg
IHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdv
LmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9s
b2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xv
Z19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwg
aW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRf
c3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVf
dGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2Rh
dGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3Nl
cnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlv
bkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVy
IGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2Yg
dGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVk
X3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAg
IHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90
YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBl
X2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5f
Z2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEw
MDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9l
bnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxm
Lm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdl
ci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2Vs
Zi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAg
c2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIu
ZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwg
aW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNv
ciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nv
bm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxp
bmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UK
ICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGph
bmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3Qg
Y2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9y
ZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQK
ICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVp
bGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5i
cmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAg
YnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4g
Z2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25l
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxm
Ll9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0
Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMg
PSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIs
IGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1
cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNv
cgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2Vs
Zi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0
aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBl
LCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwg
aW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMg
dGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3Jl
X2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4
NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9h
bmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3Rv
cmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFz
a2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNr
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBh
c3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2Vy
dGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVf
c3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2lu
Zm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMx
LCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJz
aW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNl
bGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAg
IHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRy
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9t
YW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0
cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRj
aF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxs
CiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21w
aWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUg
ODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAg
Y3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1
cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5
IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9l
eGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVy
YWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19l
dmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4g
c3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBk
YXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2Fu
ZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRl
Wyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
ODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4g
dXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVy
bmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVf
YW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0
b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rh
c2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYu
X2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUK
ICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgo
bG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9m
b3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFz
c2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0
aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2df
ZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGlu
IHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9i
dWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dy
YXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5Iiwg
bGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9x
dWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9y
ZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRl
X3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVj
dXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2Vs
Zi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlv
bigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwg
aW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRy
YWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFp
c2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIu
dXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19l
dmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
c3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2
ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24g
d2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBz
dG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2Jq
ZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4g
bWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5h
bWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwg
aW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9
IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4
LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBj
dXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdf
Y3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwog
ICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRo
X3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dp
bmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2Yg
dGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZl
bnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYu
X2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNl
bGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1
ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5h
Z2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihz
ZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9h
bGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAg
ICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxl
ci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4
LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vy
c29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVf
Y29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5Iiwg
bGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNf
dmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlz
ZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpk
amFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0
b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVu
dAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9i
dWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxm
LmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAg
ICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVy
biBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xv
bmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNl
bGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9m
ZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0
cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5
IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24u
Y3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vy
c29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBz
ZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
dXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5
cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1
LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdh
cyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3Rv
cmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4
OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9l
bnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxm
Lm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdl
ci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2Vs
Zi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAg
c2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIu
ZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwg
aW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNv
ciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nv
bm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxp
bmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UK
ICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGph
bmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3Qg
Y2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9y
ZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQK
ICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVp
bGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5i
cmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAg
YnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4g
Z2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25l
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxm
Ll9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0
Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMg
PSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIs
IGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1
cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNv
cgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2Vs
Zi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0
aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBl
LCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwg
aW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRl
bnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9y
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNh
dXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVf
bG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAg
ICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxk
CiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJi
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1
aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdl
dGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5f
ZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNo
X2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0g
Y29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBs
aW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJz
b3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IK
ICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYu
ZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGls
cy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwg
ZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGlu
IHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50
aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0
YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFz
awogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9m
cm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9y
ZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBz
ZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2df
ZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNl
bGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAg
IHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRy
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9t
YW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0
cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRj
aF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxs
CiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21w
aWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUg
ODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAg
Y3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1
cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5
IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9l
eGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVy
YWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19l
dmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4g
c3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93
aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2
ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZl
bnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0
b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
ODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVu
dChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0
IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3Rv
cmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9y
ZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1
ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQo
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVf
bG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0
LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBm
b2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1
cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9y
bV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5w
eSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5n
ZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2Vs
Zi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhl
Y3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4g
ZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9
IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5l
Y3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUg
OTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVl
LCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAg
IHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdv
LmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9s
b2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xv
Z19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwg
aW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYy
LCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYu
aW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9i
dWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dy
YXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5Iiwg
bGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9x
dWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9y
ZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRl
X3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVj
dXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2Vs
Zi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlv
bigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwg
aW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRy
YWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFp
c2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIu
dXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19l
dmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
c3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2
ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24g
d2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBz
dG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2Jq
ZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4g
bWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5h
bWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwg
aW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9
IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4
LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBj
dXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdf
Y3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwog
ICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRo
X3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dp
bmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2Yg
dGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZl
bnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYu
X2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNl
bGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1
ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5h
Z2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihz
ZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9h
bGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAg
ICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxl
ci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4
LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vy
c29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVf
Y29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5Iiwg
bGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNf
dmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlz
ZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpk
amFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0
b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVu
dAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9i
dWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxm
LmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAg
ICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVy
biBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xv
bmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNl
bGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9m
ZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0
cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5
IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24u
Y3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vy
c29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBz
ZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
dXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5
cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1
LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQs
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBp
ZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJy
b3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3Qg
Y2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9y
ZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQK
ICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVp
bGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5i
cmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAg
YnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4g
Z2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25l
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxm
Ll9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0
Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMg
PSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIs
IGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1
cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNv
cgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2Vs
Zi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0
aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBl
LCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwg
aW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMg
dGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3Jl
X2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rh
c2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAg
IGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNz
ZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50
aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xv
Z19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAg
c2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAog
ICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWls
ZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRh
dHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2Zl
dGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9h
bGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNv
bXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGlu
ZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29y
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAg
ICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVu
c3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMu
cHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRq
X2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiBy
ZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9n
X2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5
LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dl
dF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAg
IGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9j
YWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3Jf
cGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4g
c3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93
aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2
ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZl
bnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0
b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
ODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVu
dChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0
IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3Rv
cmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9y
ZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAg
ICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFz
c2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVu
dGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9z
dGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rh
c2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25f
ZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRf
cmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0g
c2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9n
X2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2df
ZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGlu
IHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9i
dWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dy
YXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5Iiwg
bGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9x
dWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9y
ZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRl
X3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVj
dXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2Vs
Zi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlv
bigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwg
aW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRy
YWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFp
c2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIu
dXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19l
dmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
c3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2
ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24g
d2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBz
dG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2Jq
ZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4g
bWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5h
bWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwg
aW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9
IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4
LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBj
dXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdf
Y3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwog
ICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRo
X3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dp
bmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2Yg
dGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZl
bnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYu
X2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNl
bGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1
ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5h
Z2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihz
ZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9h
bGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAg
ICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxl
ci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4
LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vy
c29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVf
Y29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5Iiwg
bGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNf
dmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlz
ZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpk
amFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0
b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVu
dAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9i
dWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxm
LmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAg
ICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVy
biBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xv
bmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNl
bGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9m
ZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0
cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5
IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24u
Y3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vy
c29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBz
ZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
dXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5
cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1
LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQs
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBp
ZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJy
b3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4g
c2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5z
dXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5v
cm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3Qg
PSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIu
cHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYu
Z2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNl
bGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4
ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGlu
IGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3Ig
PSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25u
ZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5l
IDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1
ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAg
ICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5n
by5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNh
dXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVf
c3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90
YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9u
X2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0
X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9
IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3Vy
ZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3Jt
X3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0g
QnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5
IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdl
dF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxm
Ll9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVj
dXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBl
eGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0g
c2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVj
dGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5
OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUs
IHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAg
cmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28u
ZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xv
Z19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAg
c2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAog
ICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWls
ZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRh
dHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2Zl
dGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9h
bGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNv
bXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGlu
ZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29y
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAg
ICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVu
c3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMu
cHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRq
X2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiBy
ZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlm
aWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2df
ZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNl
bGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAg
IHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRy
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9t
YW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0
cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRj
aF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxs
CiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21w
aWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUg
ODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAg
Y3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1
cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5
IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9l
eGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVy
YWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmll
ciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBp
biB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50
ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAz
NTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZv
cm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVu
dC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9u
X2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3Zl
cnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRf
bGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVf
YW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0
b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rh
c2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0
LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2Fu
ZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9y
ZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNr
ZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwg
aW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRf
c3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVf
dGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2Rh
dGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3Nl
cnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlv
bkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVy
IGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2Yg
dGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVk
X3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAg
IHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90
YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBl
X2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5f
Z2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEw
MDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9l
bnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxm
Lm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdl
ci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2Vs
Zi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAg
c2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIu
ZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwg
aW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNv
ciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nv
bm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxp
bmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UK
ICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGph
bmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4g
c2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBk
YXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFs
X3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRp
b24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFz
a2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9t
X3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9u
X2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVy
X3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9z
dG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90
YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0
YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
NzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2Vy
dCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9u
RXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIg
aW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRf
dGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAg
cmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rh
c2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVf
aW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9n
ZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAw
MSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVw
ZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5h
bF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2Fu
ZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9y
ZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNr
ZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIw
OSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9n
ZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAg
ICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxv
Y2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9y
X3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3Nl
cnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlv
bkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
c3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2
ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3
NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0
IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25F
cnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBp
biBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1
cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJu
YWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcs
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1h
dGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50
YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zy
b21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNp
b25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5
ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0
ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9z
dGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51
cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVf
YW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3Rh
dGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3Rv
cmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFz
awogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEn
XQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGlu
IHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3Jl
Y2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5
ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZp
bGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRo
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlk
ZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJv
cgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBz
ZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBm
b2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNr
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNp
cGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2Zp
bGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZv
cm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9s
YXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBp
biBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
dXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRl
X2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0
YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0
b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rh
c2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRh
J10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2
MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0
IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25F
cnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0
b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0
ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1h
dGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4g
X2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9v
YmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9l
bnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxm
Lm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdl
ci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2Vs
Zi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAg
c2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIu
ZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwg
aW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNv
ciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nv
bm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxp
bmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UK
ICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGph
bmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4g
c2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBk
YXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFs
X3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5k
X3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3Jl
X3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tk
YXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNz
ZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRp
b25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0
YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZv
cm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwg
aW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lv
bl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIg
aW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4g
dXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVy
bmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVf
YW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0
b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rh
c2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFz
ayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAg
YXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3Nl
cnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3Jl
X3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9p
bmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAz
MSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVy
c2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZp
ZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0
ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawog
ICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9t
X3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNp
cGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxm
Ll9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2Yg
dGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZl
bnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYu
X2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNl
bGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1
ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5h
Z2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihz
ZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9h
bGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAg
ICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxl
ci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4
LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vy
c29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVf
Y29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5Iiwg
bGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNf
dmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlz
ZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpk
amFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0
b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVu
dAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9i
dWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxm
LmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAg
ICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVy
biBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xv
bmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNl
bGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9m
ZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0
cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5
IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24u
Y3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vy
c29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBz
ZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
dXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5
cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1
LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdh
cyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3Rv
cmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRl
X2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9z
dG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0
YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rh
c2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAg
IGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNz
ZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50
aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0
YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFz
awogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9m
cm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9y
ZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBz
ZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2df
ZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNl
bGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAg
IHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRy
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9t
YW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0
cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRj
aF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxs
CiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21w
aWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUg
ODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAg
Y3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1
cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5
IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9l
eGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVy
YWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19l
dmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
NzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2Vy
dCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9u
RXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIg
aW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVu
dChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0
IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3Rv
cmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlk
ZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJv
cgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVu
dGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
NjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2Vs
Zi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBl
X2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxl
KGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3Jt
YXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5
ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4g
X2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9i
dWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dy
YXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5Iiwg
bGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9x
dWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9y
ZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRl
X3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVj
dXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2Vs
Zi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlv
bigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwg
aW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRy
YWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFp
c2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIu
dXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2Miwg
aW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmlu
dGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRh
dGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5k
X3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVb
J3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNl
bGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2Zp
bGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3Bh
dGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lv
bl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rh
c2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAg
IGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNz
ZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50
aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0
YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFz
awogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9m
cm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9y
ZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBz
ZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2df
ZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNl
bGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAg
IHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRy
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9t
YW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0
cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRj
aF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxs
CiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21w
aWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUg
ODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAg
Y3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1
cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5
IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9l
eGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVy
YWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmll
ciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBp
biB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50
ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAz
NTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZv
cm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVu
dC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9u
X2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3Zl
cnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRf
bGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQo
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVf
bG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFz
ayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAg
YXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3Nl
cnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRp
ZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9n
X2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2df
ZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3Nl
cnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlv
bkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVy
IGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGlu
IHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRl
cm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1
NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9y
bWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50
LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25f
ZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVy
c2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9s
YXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9h
bmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3Rv
cmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFz
a2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNr
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBh
c3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2Vy
dGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9n
X2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5
LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dl
dF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAg
IGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9j
YWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3Jf
cGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
NzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2Vy
dCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9u
RXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIg
aW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRf
dGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAg
cmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rh
c2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVf
aW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9n
ZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAw
MSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVw
ZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5h
bF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRh
dGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxf
c3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRf
c3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVf
dGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2Rh
dGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDks
IGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0
X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAg
bGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2Nh
bGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9w
YXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24g
d2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBz
dG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9y
ZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNr
CiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSdd
CkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQs
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBp
ZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJy
b3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4g
c2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBk
YXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFs
X3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0
ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9z
dGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9z
dG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90
YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0
YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAz
NjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2Vy
dCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9u
RXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIg
aW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVu
dChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0
IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3Rv
cmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRl
ZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0
aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBf
Z2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29i
aiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRf
dGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlv
bl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dl
dF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmog
PSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1
cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9y
bV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5w
eSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5n
ZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2Vs
Zi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhl
Y3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4g
ZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9
IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5l
Y3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUg
OTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVl
LCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAg
IHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdv
LmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9s
b2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xv
Z19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwg
aW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
dXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRl
X2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0
YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0
b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rh
c2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRh
J10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24g
d2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBp
biBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9y
ZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxh
eWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxm
aWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0
aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9i
dWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxm
LmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAg
ICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVy
biBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xv
bmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNl
bGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9m
ZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0
cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5
IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24u
Y3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vy
c29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBz
ZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
dXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5
cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1
LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdh
cyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3Rv
cmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVf
dGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawog
ICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpB
c3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMg
dGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3Jl
X2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rh
c2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAg
IGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNz
ZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRo
ZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9s
b2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9l
bnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAg
ICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2Fy
Z3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0g
bGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9f
CiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1
LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAg
IHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21w
aWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25u
ZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIs
IGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJz
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNv
cgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRq
X2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBs
aW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQs
IGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5k
X3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3Jl
X3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tk
YXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNz
ZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRp
b25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0
YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZv
cm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwg
aW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lv
bl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZl
bnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQg
aWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVy
cm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGlu
IHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rh
c2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJl
Y2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNr
ZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2lu
Zm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0
X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEs
IGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRh
dGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxf
c3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
dXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRl
X2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0
YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0
b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rh
c2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRh
J10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24g
d2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBz
dG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0g
c2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNr
ZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3Jf
cGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJz
aW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRl
X2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9z
dG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0
YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4
NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9h
bmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3Rv
cmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFz
a2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNr
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBh
c3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2Vy
dGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlm
aWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIs
IGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5p
bnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93
aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2lu
Zm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2
ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRp
b25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJf
dmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dl
dF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
ODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4g
dXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVy
bmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVf
YW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0
b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rh
c2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYu
X2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUK
ICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgo
bG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9m
b3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwg
aW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRf
c3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVf
dGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2Rh
dGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
MzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3Nl
cnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlv
bkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
c3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3Rh
cnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9y
bWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBp
biBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9u
X29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYu
X2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNl
bGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1
ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5h
Z2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihz
ZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9h
bGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAg
ICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxl
ci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4
LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vy
c29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVf
Y29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5Iiwg
bGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNf
dmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlz
ZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpk
amFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBp
biBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9l
bnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxm
Lm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdl
ci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2Vs
Zi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAg
c2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIu
ZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwg
aW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNv
ciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nv
bm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxp
bmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UK
ICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGph
bmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3Qg
Y2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9y
ZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQK
ICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVp
bGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5i
cmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAg
YnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4g
Z2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25l
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxm
Ll9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0
Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMg
PSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIs
IGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1
cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNv
cgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2Vs
Zi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0
aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBl
LCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwg
aW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMg
dGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3Jl
X2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4
NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9h
bmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3Rv
cmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFz
a2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNr
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBh
c3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2Vy
dGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVf
c3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2lu
Zm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMx
LCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJz
aW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNl
bGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAg
IHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRy
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9t
YW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0
cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRj
aF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxs
CiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21w
aWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUg
ODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAg
Y3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1
cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5
IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9l
eGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVy
YWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmll
ciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBp
biB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50
ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAz
NTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZv
cm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVu
dC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9u
X2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3Zl
cnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRf
bGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVf
YW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0
b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rh
c2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0
LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRh
dGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxf
c3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRf
c3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVf
dGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2Rh
dGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGlu
IHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVw
ZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9h
bmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0
ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2Jq
ZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4g
bWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5h
bWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwg
aW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9
IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4
LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBj
dXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdf
Y3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwog
ICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRo
X3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dp
bmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2Yg
dGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZl
bnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYu
X2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNl
bGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1
ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5h
Z2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihz
ZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9h
bGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAg
ICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxl
ci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4
LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vy
c29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVf
Y29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5Iiwg
bGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNf
dmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlz
ZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpk
amFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBp
biBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1
cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJu
YWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcs
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1h
dGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50
YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zy
b21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNp
b25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5
ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZv
bGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3Vy
ZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3Jt
X3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0g
QnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5
IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdl
dF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxm
Ll9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVj
dXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBl
eGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0g
c2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVj
dGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5
OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUs
IHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAg
cmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28u
ZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xv
Z19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAg
c2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAog
ICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWls
ZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRh
dHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2Zl
dGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9h
bGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNv
bXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGlu
ZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29y
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAg
ICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVu
c3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMu
cHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRq
X2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiBy
ZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9n
X2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNz
ZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRp
b25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmll
ciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2
ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZl
bnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGlu
IHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3Jl
Y2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5
ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZp
bGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRo
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlk
ZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJv
cgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBz
ZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBm
b2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNr
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNp
cGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2Zp
bGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZv
cm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9s
YXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBp
biBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
dXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRl
X2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0
YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVw
ZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9h
bmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0
ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9y
ZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNr
CiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSdd
CkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdh
cyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4g
c3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVj
aXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXll
cl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmls
ZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgK
ICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVp
bGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5i
cmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAg
YnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4g
Z2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25l
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxm
Ll9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0
Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMg
PSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIs
IGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1
cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNv
cgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2Vs
Zi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0
aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBl
LCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwg
aW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMg
dGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3Jl
X2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rh
c2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAg
IGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNz
ZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50
aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xv
Z19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAg
c2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAog
ICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWls
ZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRh
dHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2Zl
dGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9h
bGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNv
bXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGlu
ZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29y
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAg
ICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVu
c3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMu
cHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRq
X2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiBy
ZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9n
X2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBp
biBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2df
ZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNl
bGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAg
IHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRy
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9t
YW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0
cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRj
aF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxs
CiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21w
aWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUg
ODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAg
Y3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1
cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5
IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9l
eGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVy
YWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmll
ciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBp
biB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50
ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0
ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRf
c3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsn
dGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2Vs
Zi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmls
ZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0
aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9u
X2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0
LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRh
dGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxf
c3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRf
c3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVf
dGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2Rh
dGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDks
IGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0
X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAg
bGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2Nh
bGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9w
YXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24g
d2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBz
dG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2Jq
ZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4g
bWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5h
bWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwg
aW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9
IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4
LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBj
dXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdf
Y3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwog
ICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRo
X3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRh
dGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5k
X3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVb
J3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVf
dGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawog
ICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpB
c3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRl
bnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9y
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNl
bGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZv
bGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lw
ZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmls
ZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9y
bWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xh
eWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGlu
IF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2df
ZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNl
bGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAg
IHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRy
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9t
YW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0
cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRj
aF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxs
CiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21w
aWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUg
ODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAg
Y3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1
cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5
IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9l
eGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVy
YWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19l
dmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4g
c3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3Rv
cmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFz
awogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEn
XQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0
b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3Jl
X3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sK
ICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10K
QXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlk
ZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJv
cgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRf
dGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlv
bl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dl
dF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmog
PSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1
cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9y
bV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5w
eSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5n
ZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2Vs
Zi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhl
Y3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4g
ZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9
IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5l
Y3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUg
OTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVl
LCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAg
IHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdv
LmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9s
b2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xv
Z19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwg
aW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRf
c3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVf
dGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2Rh
dGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGlu
IHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0
b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rh
c2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRh
J10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2
MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0
IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25F
cnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0
b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0
ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1h
dGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4g
X2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9v
YmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9l
bnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxm
Lm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdl
ci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2Vs
Zi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAg
c2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIu
ZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwg
aW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNv
ciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nv
bm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxp
bmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UK
ICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGph
bmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3Qg
Y2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9y
ZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQK
ICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVp
bGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5i
cmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAg
YnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4g
Z2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25l
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxm
Ll9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0
Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMg
PSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIs
IGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1
cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNv
cgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2Vs
Zi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0
aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBl
LCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwg
aW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMg
dGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3Jl
X2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rh
c2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAg
IGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNz
ZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50
aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0
YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFz
awogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9m
cm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9y
ZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBz
ZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2df
ZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNl
bGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAg
IHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRy
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9t
YW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0
cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRj
aF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxs
CiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21w
aWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUg
ODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAg
Y3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1
cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5
IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9l
eGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVy
YWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmll
ciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2
ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZl
bnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0
b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3Jl
X3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sK
ICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10K
QXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9y
ZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1
ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQo
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBz
ZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRh
dGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxf
c3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlv
biA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNr
ZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21f
dGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25f
Zm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJf
dmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9i
dWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dy
YXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5Iiwg
bGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9x
dWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9y
ZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRl
X3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVj
dXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2Vs
Zi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlv
bigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwg
aW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRy
YWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFp
c2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIu
dXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19l
dmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVy
IGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2Yg
dGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZl
bnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYu
X2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNl
bGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1
ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5h
Z2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihz
ZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9h
bGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAg
ICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxl
ci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4
LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vy
c29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVf
Y29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5Iiwg
bGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNf
dmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlz
ZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpk
amFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBp
biBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1
cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJu
YWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcs
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1h
dGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50
YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zy
b21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNp
b25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5
ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZv
bGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3Vy
ZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3Jt
X3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0g
QnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5
IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdl
dF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxm
Ll9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVj
dXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBl
eGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0g
c2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVj
dGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5
OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUs
IHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAg
cmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28u
ZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xv
Z19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAg
c2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAog
ICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWls
ZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRh
dHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2Zl
dGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9h
bGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNv
bXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGlu
ZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29y
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAg
ICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVu
c3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMu
cHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRq
X2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiBy
ZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlm
aWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIs
IGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5p
bnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBk
YXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2Fu
ZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRl
Wyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBz
ZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tm
aWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9w
YXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNp
b25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1
ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVf
YW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0
b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rh
c2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFz
ayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAg
YXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3Nl
cnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3Jl
X3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9p
bmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAz
MSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVy
c2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2df
ZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGlu
IHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVw
ZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9h
bmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0
ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2Jq
ZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4g
bWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5h
bWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwg
aW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9
IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4
LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBj
dXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdf
Y3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwog
ICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRo
X3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dp
bmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGlu
IHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRl
cm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4
OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9l
bnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxm
Lm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdl
ci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2Vs
Zi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAg
c2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIu
ZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwg
aW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNv
ciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nv
bm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxp
bmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UK
ICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGph
bmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3Qg
Y2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9y
ZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQK
ICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVp
bGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5i
cmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAg
YnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4g
Z2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25l
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxm
Ll9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0
Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMg
PSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIs
IGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1
cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNv
cgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2Vs
Zi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0
aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBl
LCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwg
aW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRl
bnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9y
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNl
bGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZv
bGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lw
ZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmls
ZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9y
bWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xh
eWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGlu
IF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2df
ZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNl
bGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAg
IHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRy
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9t
YW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0
cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRj
aF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxs
CiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21w
aWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUg
ODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAg
Y3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1
cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5
IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9l
eGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVy
YWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19l
dmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
NzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2Vy
dCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9u
RXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZl
bnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0
b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
ODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVu
dChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0
IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3Rv
cmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9y
ZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAg
ICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFz
c2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVu
dGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9z
dGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rh
c2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25f
ZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRf
cmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0g
c2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9n
X2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZp
ZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2Miwg
aW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmlu
dGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dp
bmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
MzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5m
b3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZl
bnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlv
bl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92
ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0
X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4
OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9l
bnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxm
Lm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdl
ci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2Vs
Zi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAg
c2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIu
ZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwg
aW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNv
ciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nv
bm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxp
bmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UK
ICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGph
bmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4g
c2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBk
YXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFs
X3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5k
X3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3Jl
X3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tk
YXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5
LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dl
dF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAg
IGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9j
YWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3Jf
cGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4g
c3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBk
YXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2Fu
ZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRl
Wyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0
ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRf
c3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsn
dGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAg
ICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFz
c2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3Rv
cmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBl
X2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92
ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBh
dGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xv
Z19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFz
c2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0
aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2df
ZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGlu
IHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0
b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rh
c2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRh
J10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3
NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0
IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25F
cnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBp
biBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICBy
ZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFz
a2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9p
bmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dl
dF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAx
LCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBk
YXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFs
X3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5k
X3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3Jl
X3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tk
YXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5
LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dl
dF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAg
IGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9j
YWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3Jf
cGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
NzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2Vy
dCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9u
RXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIg
aW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRf
dGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAg
cmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rh
c2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVf
aW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9n
ZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAw
MSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVw
ZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5h
bF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRh
dGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxf
c3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRf
c3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVf
dGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2Rh
dGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
MzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3Nl
cnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlv
bkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
c3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3Rh
cnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9y
bWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBp
biBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9u
X29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYu
X2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNl
bGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1
ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5h
Z2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihz
ZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9h
bGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAg
ICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxl
ci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4
LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vy
c29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVf
Y29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5Iiwg
bGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNf
dmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlz
ZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpk
amFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBp
biBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1
cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJu
YWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODks
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBk
YXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFs
X3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5k
X3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3Jl
X3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tk
YXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5
LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dl
dF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAg
IGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9j
YWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3Jf
cGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4g
c3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93
aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBp
biB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50
ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0
ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRf
c3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsn
dGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2Vs
Zi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmls
ZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0
aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9u
X2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFz
ayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAg
YXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3Nl
cnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRp
ZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9n
X2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZp
ZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2Miwg
aW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmlu
dGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dp
bmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
MzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5m
b3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZl
bnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlv
bl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92
ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0
X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRl
X2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9z
dG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0
YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4
NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODks
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBk
YXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFs
X3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5k
X3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3Jl
X3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tk
YXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5
LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dl
dF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAg
IGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9j
YWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3Jf
cGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4g
c3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3Rv
cmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFz
awogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEn
XQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYx
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQg
aWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVy
cm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0
IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3Rv
cmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRl
ZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0
aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBf
Z2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29i
aiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBz
ZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRh
dGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxf
c3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
dXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRl
X2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0
YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0
b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rh
c2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRh
J10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24g
d2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBp
biBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9y
ZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxh
eWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxm
aWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0
aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9i
dWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxm
LmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAg
ICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVy
biBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xv
bmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNl
bGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9m
ZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0
cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5
IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24u
Y3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vy
c29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBz
ZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
dXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5
cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1
LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQs
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBp
ZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJy
b3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4g
c2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBk
YXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFs
X3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRp
b24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFz
a2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9t
X3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9u
X2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVy
X3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9z
dG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90
YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0
YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAz
NjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2Vy
dCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9u
RXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFy
dGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3Jt
YXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGlu
IF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25f
b2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGlu
IHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVw
ZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5h
bF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2Fu
ZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9y
ZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNr
ZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIw
OSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9n
ZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAg
ICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxv
Y2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9y
X3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3Nl
cnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlv
bkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
c3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2
ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24g
d2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBz
dG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2Jq
ZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4g
bWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5h
bWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwg
aW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9
IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4
LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBj
dXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdf
Y3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwog
ICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRo
X3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dp
bmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGlu
IHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRl
cm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4
OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9l
bnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxm
Lm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdl
ci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2Vs
Zi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAg
c2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIu
ZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwg
aW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNv
ciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nv
bm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxp
bmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UK
ICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGph
bmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3Qg
Y2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9y
ZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQK
ICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVp
bGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5i
cmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAg
YnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4g
Z2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25l
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxm
Ll9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0
Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMg
PSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIs
IGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1
cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNv
cgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2Vs
Zi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0
aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBl
LCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwg
aW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRl
bnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9y
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNl
bGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZv
bGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lw
ZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmls
ZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9y
bWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xh
eWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGlu
IF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2df
ZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNl
bGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAg
IHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRy
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9t
YW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0
cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRj
aF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxs
CiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21w
aWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUg
ODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAg
Y3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1
cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5
IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9l
eGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVy
YWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19l
dmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4g
c3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93
aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2
ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZl
bnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0
b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
ODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVu
dChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0
IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3Rv
cmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9y
ZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1
ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQo
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVf
bG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFz
ayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAg
YXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3Nl
cnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRp
ZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYy
LCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYu
aW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9p
bmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShl
dmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0
aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVy
X3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9n
ZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2Jq
ZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4g
bWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5h
bWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwg
aW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9
IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4
LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBj
dXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdf
Y3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwog
ICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRo
X3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRh
dGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5k
X3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVb
J3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVf
dGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawog
ICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpB
c3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMg
dGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0
b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lw
ZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJf
dmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVw
YXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAg
ICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxk
CiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJi
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1
aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdl
dGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5f
ZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNo
X2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0g
Y29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBs
aW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJz
b3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IK
ICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYu
ZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGls
cy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwg
ZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGlu
IHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50
aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2
MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxm
LmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51
cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVf
YW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3Rh
dGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3Rv
cmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFz
awogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEn
XQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGlu
IHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3Jl
Y2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5
ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZp
bGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRo
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9y
ZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1
ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQo
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVu
dGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
NjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2Vs
Zi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
dXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRl
X2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0
YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0
b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rh
c2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRh
J10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24g
d2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBp
biBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9y
ZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxh
eWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxm
aWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0
aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9i
dWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxm
LmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAg
ICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVy
biBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xv
bmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNl
bGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9m
ZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0
cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5
IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24u
Y3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vy
c29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBz
ZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
dXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5
cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1
LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdh
cyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4g
c3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVj
aXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXll
cl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmls
ZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgK
ICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVp
bGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5i
cmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAg
YnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4g
Z2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25l
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxm
Ll9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0
Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMg
PSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIs
IGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1
cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNv
cgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2Vs
Zi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0
aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBl
LCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwg
aW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRl
bnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9y
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNh
dXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVf
bG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAg
ICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxk
CiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJi
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1
aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdl
dGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5f
ZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNo
X2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0g
Y29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBs
aW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJz
b3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IK
ICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYu
ZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGls
cy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwg
ZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGlu
IHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50
aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2
MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxm
LmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2df
ZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNl
bGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAg
IHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRy
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9t
YW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0
cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRj
aF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxs
CiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21w
aWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUg
ODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAg
Y3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1
cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5
IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9l
eGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVy
YWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmll
ciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBp
biB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50
ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAz
NTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZv
cm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVu
dC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9u
X2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3Zl
cnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRf
bGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVw
ZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5h
bF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2Fu
ZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9y
ZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNr
ZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIw
OSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9n
ZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAg
ICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxv
Y2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9y
X3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGlu
IHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVw
ZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9h
bmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0
ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2Jq
ZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4g
bWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5h
bWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwg
aW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9
IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4
LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBj
dXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdf
Y3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwog
ICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRo
X3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRh
dGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5k
X3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVb
J3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRl
X2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9z
dG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0
YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rh
c2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAg
IGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNz
ZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRo
ZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9y
ZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVf
aW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEw
MzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3Zl
cnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0
aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAg
c2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAog
ICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWls
ZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRh
dHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2Zl
dGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9h
bGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNv
bXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGlu
ZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29y
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAg
ICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVu
c3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMu
cHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRq
X2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiBy
ZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9n
X2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBp
biBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51
cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVf
YW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3Rh
dGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3Rv
cmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFz
awogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEn
XQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGlu
IHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3Jl
Y2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5
ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZp
bGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRo
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlk
ZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJv
cgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBz
ZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRh
dGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxf
c3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlv
biA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNr
ZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21f
dGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25f
Zm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJf
dmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0
b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rh
c2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRh
J10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24g
d2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBz
dG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9y
ZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNr
CiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSdd
CkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEs
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBp
ZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJy
b3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3Qg
Y2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9y
ZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVk
X3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRp
b25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9n
ZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2Jq
ID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5z
dXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5v
cm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3Qg
PSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIu
cHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYu
Z2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNl
bGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4
ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGlu
IGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3Ig
PSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25u
ZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5l
IDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1
ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAg
ICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5n
by5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNh
dXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVf
bG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAg
ICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxk
CiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJi
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1
aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdl
dGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5f
ZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNo
X2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0g
Y29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBs
aW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJz
b3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IK
ICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYu
ZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGls
cy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwg
ZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGlu
IHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRo
ZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9s
b2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9l
bnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAg
ICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2Fy
Z3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0g
bGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9f
CiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1
LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAg
IHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21w
aWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25u
ZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIs
IGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJz
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNv
cgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRq
X2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBs
aW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNr
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBh
c3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2Vy
dGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlm
aWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIs
IGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5p
bnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93
aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2lu
Zm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2
ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRp
b25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJf
dmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dl
dF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0
ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRf
c3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsn
dGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAg
ICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFz
c2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVu
dGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9z
dGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rh
c2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25f
ZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRf
cmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0g
c2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYy
LCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYu
aW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVw
ZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9h
bmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0
ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0g
c2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNr
ZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3Jf
cGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJz
aW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVf
dGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawog
ICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpB
c3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRl
bnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9y
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNl
bGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0
ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9z
dGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9z
dG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90
YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0
YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwg
aW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRf
cmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBs
YXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2Fs
ZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3Bh
dGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQg
aWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVy
cm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGlu
IHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rh
c2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJl
Y2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNr
ZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2lu
Zm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0
X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEs
IGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRh
dGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxf
c3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRf
c3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVf
dGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2Rh
dGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
MzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3Nl
cnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlv
bkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
c3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3Rh
cnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9y
bWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBp
biBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9u
X29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYu
X2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNl
bGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1
ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5h
Z2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihz
ZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9h
bGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAg
ICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxl
ci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4
LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vy
c29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVf
Y29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5Iiwg
bGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNf
dmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlz
ZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpk
amFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBp
biBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1
cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJu
YWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9h
bmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3Rv
cmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFz
a2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNr
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBh
c3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2Vy
dGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlm
aWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFy
dGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sK
ICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJv
bV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVj
aXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2Vs
Zi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBp
biB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50
ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAz
NTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZv
cm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVu
dC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9u
X2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3Zl
cnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRf
bGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVf
YW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0
b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rh
c2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFz
ayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAg
YXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3Nl
cnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xv
Z19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwg
aW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRf
c3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVf
dGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2Rh
dGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
MzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3Nl
cnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlv
bkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
c3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3Rh
cnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9y
bWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBp
biBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9u
X29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYu
X2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNl
bGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1
ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5h
Z2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihz
ZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9h
bGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAg
ICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxl
ci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4
LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vy
c29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVf
Y29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5Iiwg
bGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNf
dmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlz
ZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpk
amFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0
b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVu
dAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9i
dWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxm
LmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAg
ICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVy
biBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xv
bmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNl
bGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9m
ZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0
cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5
IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24u
Y3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vy
c29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBz
ZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
dXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5
cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1
LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdh
cyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3Rv
cmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4
OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1
cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJu
YWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9h
bmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3Rv
cmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFz
a2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
MDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5f
Z2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQog
ICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChs
b2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zv
cl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNz
ZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRp
b25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19l
dmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
NzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2Vy
dCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9u
RXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIg
aW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4g
dXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVy
bmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3Jt
YXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQu
dGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9m
cm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJz
aW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xh
eWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRh
dGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxf
c3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRf
c3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVf
dGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2Rh
dGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDks
IGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0
X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAg
bGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2Nh
bGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9w
YXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3
NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0
IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25F
cnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0
b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVu
dAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9i
dWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxm
LmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAg
ICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVy
biBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xv
bmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNl
bGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9m
ZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0
cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5
IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24u
Y3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vy
c29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBz
ZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
dXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5
cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1
LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQs
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBp
ZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJy
b3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4g
c2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBk
YXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFs
X3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRp
b24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFz
a2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9t
X3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9u
X2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVy
X3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9z
dG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90
YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0
YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4g
c3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBk
YXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2Fu
ZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRl
Wyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3Jl
X3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sK
ICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10K
QXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBz
dG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNp
cGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVy
X3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxl
cGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVf
bG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0
LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2Fu
ZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9y
ZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNr
ZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFz
c2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0
aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZp
ZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0
ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawog
ICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9t
X3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNp
cGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxm
Ll9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGlu
IHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRl
cm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRl
X2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9z
dG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0
YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxm
Ll9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxl
CiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRo
KGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25f
Zm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9l
bnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAg
ICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2Fy
Z3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0g
bGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9f
CiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1
LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAg
IHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21w
aWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25u
ZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIs
IGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJz
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNv
cgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRq
X2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBs
aW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNr
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBh
c3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2Vy
dGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlm
aWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIs
IGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5p
bnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93
aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2lu
Zm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2
ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRp
b25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJf
dmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dl
dF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0
ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRf
c3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsn
dGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAg
ICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFz
c2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVu
dGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9z
dGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rh
c2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25f
ZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRf
cmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0g
c2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYy
LCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYu
aW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVw
ZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9h
bmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0
ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9y
ZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNr
CiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSdd
CkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEs
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBp
ZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJy
b3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3Qg
Y2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9y
ZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVk
X3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRp
b25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9n
ZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2Jq
ID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5z
dXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5v
cm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3Qg
PSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIu
cHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYu
Z2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNl
bGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4
ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGlu
IGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3Ig
PSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25u
ZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5l
IDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1
ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAg
ICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5n
by5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNl
bGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0
ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9z
dGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9u
ID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tm
aWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90
YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9m
b3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92
ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3Rv
cmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFz
awogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEn
XQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQg
aWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVy
cm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0
IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3Rv
cmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9y
ZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1
ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQo
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVf
bG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0
LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBm
b2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1
cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9y
bV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5w
eSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5n
ZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2Vs
Zi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhl
Y3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4g
ZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9
IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5l
Y3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUg
OTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVl
LCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAg
IHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdv
LmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9s
b2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xv
Z19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwg
aW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9n
X2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2df
ZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGlu
IHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0
b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rh
c2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRh
J10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2
MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0
IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25F
cnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0
b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0
ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1h
dGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4g
X2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9v
YmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9l
bnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxm
Lm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdl
ci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2Vs
Zi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAg
c2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIu
ZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwg
aW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNv
ciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nv
bm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxp
bmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UK
ICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGph
bmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3Qg
Y2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9y
ZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQK
ICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVp
bGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5i
cmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAg
YnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4g
Z2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25l
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxm
Ll9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0
Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMg
PSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIs
IGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1
cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNv
cgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2Vs
Zi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0
aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBl
LCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwg
aW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMg
dGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3Jl
X2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rh
c2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAg
IGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNz
ZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50
aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0
YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFz
awogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9m
cm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9y
ZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBz
ZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIs
IGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5p
bnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBk
YXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2Fu
ZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRl
Wyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3Jl
X3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sK
ICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10K
QXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlk
ZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJv
cgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRf
dGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlv
bl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dl
dF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmog
PSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1
cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9y
bV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5w
eSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5n
ZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2Vs
Zi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhl
Y3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4g
ZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9
IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5l
Y3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUg
OTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVl
LCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAg
IHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdv
LmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9s
b2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xv
Z19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFz
c2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0
aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2df
ZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3Nl
cnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlv
bkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVy
IGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2Yg
dGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVk
X3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAg
IHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90
YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBl
X2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5f
Z2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEw
MDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9l
bnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxm
Lm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdl
ci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2Vs
Zi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAg
c2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIu
ZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwg
aW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNv
ciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nv
bm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxp
bmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UK
ICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGph
bmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3Qg
Y2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9y
ZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQK
ICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVp
bGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5i
cmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAg
YnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4g
Z2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25l
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxm
Ll9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0
Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMg
PSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIs
IGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1
cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNv
cgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2Vs
Zi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0
aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBl
LCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwg
aW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRl
bnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9y
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNl
bGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZv
bGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3Vy
ZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3Jt
X3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0g
QnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5
IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdl
dF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxm
Ll9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVj
dXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBl
eGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0g
c2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVj
dGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5
OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUs
IHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAg
cmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28u
ZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2
MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxm
LmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVf
aW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUo
ZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1h
dGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXll
cl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBf
Z2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBk
YXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2Fu
ZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRl
Wyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3Jl
X3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sK
ICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10K
QXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBz
dG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNp
cGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVy
X3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxl
cGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVu
dGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
NjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2Vs
Zi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
dXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRl
X2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0
YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24g
PSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2Zp
bGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rh
c2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zv
cl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3Zl
cnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9y
ZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNr
CiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSdd
CkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQs
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBp
ZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJy
b3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4g
c2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFz
ayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVj
aXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tm
aWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5m
b3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRf
bGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwg
aW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0
ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9z
dGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9z
dG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90
YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0
YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAz
NjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2Vy
dCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9u
RXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFy
dGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3Jt
YXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGlu
IF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25f
b2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGlu
IHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVw
ZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5h
bF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2Fu
ZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9y
ZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNr
ZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIw
OSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9n
ZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAg
ICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxv
Y2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9y
X3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3Nl
cnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlv
bkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
c3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2
ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3
NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0
IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25F
cnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBp
biBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICBy
ZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFz
a2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9p
bmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dl
dF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAx
LCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBk
YXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFs
X3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0
ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9z
dGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51
cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVf
YW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3Rh
dGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3Rv
cmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFz
awogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEn
XQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGlu
IHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3Jl
Y2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5
ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZp
bGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRo
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlk
ZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJv
cgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBz
ZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRh
dGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxf
c3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlv
biA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNr
ZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21f
dGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25f
Zm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJf
dmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0
b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rh
c2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRh
J10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3
NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0
IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25F
cnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBp
biBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICBy
ZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFz
a2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9p
bmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dl
dF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAx
LCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBk
YXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFs
X3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5k
X3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3Jl
X3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tk
YXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNz
ZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRp
b25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0
YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZv
cm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwg
aW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lv
bl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIg
aW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVu
dChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0
IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3Rv
cmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlk
ZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJv
cgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBz
ZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBm
b2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNr
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNp
cGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2Zp
bGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZv
cm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9s
YXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBp
biBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9n
X2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2df
ZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGlu
IHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVw
ZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9h
bmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0
ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9y
ZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNr
CiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSdd
CkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdh
cyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4g
c3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVj
aXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXll
cl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmls
ZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgK
ICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVp
bGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5i
cmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAg
YnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4g
Z2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25l
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxm
Ll9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0
Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMg
PSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIs
IGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1
cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNv
cgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2Vs
Zi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0
aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBl
LCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwg
aW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRl
bnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9y
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNh
dXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVf
bG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAg
ICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxk
CiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJi
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1
aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdl
dGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5f
ZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNo
X2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0g
Y29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBs
aW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJz
b3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IK
ICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYu
ZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGls
cy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwg
ZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGlu
IHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50
aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2
MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxm
LmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51
cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVf
YW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3Rh
dGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9
IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmls
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFz
a2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9y
X3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVy
c2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
ODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVu
dChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGlu
IHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQo
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBz
ZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRh
dGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxf
c3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlv
biA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNr
ZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21f
dGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25f
Zm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJf
dmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0
b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rh
c2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRh
J10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2
MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0
IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25F
cnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0
b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0
ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1h
dGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4g
X2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9v
YmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9l
bnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxm
Lm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdl
ci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2Vs
Zi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAg
c2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIu
ZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwg
aW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNv
ciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nv
bm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxp
bmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UK
ICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGph
bmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4g
c2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBk
YXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFs
X3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0
ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9z
dGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9z
dG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90
YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0
YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwg
aW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRf
cmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBs
YXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2Fs
ZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3Bh
dGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQg
aWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVy
cm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGlu
IHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVw
ZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5h
bF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1Nywg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0
aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRh
c2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJv
bV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lv
bl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXll
cl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRf
c3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVf
dGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2Rh
dGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGlu
IHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9i
dWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dy
YXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5Iiwg
bGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9x
dWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9y
ZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRl
X3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVj
dXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2Vs
Zi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlv
bigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwg
aW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRy
YWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFp
c2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIu
dXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2Miwg
aW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmlu
dGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRh
dGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5k
X3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVb
J3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVf
dGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawog
ICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpB
c3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMg
dGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0
b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lw
ZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJf
dmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVw
YXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAg
ICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxk
CiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJi
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1
aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdl
dGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5f
ZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNo
X2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0g
Y29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBs
aW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJz
b3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IK
ICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYu
ZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGls
cy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwg
ZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGlu
IHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50
aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0
YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFz
awogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9m
cm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9y
ZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBz
ZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIs
IGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5p
bnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBk
YXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2Fu
ZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRl
Wyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
ODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVu
dChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGlu
IHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVw
ZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5h
bF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1Nywg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0
aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRh
c2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJv
bV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lv
bl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXll
cl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRf
c3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVf
dGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2Rh
dGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3Nl
cnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlv
bkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVy
IGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2Yg
dGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVk
X3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAg
IHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90
YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBl
X2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5f
Z2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEw
MDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1
cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJu
YWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9h
bmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3Rv
cmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFz
a2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
MDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5f
Z2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQog
ICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChs
b2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zv
cl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNz
ZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRp
b25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmll
ciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBp
biB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50
ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAz
NTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZv
cm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVu
dC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9u
X2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3Zl
cnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRf
bGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVf
YW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0
b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rh
c2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFz
ayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAg
YXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3Nl
cnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRp
ZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYy
LCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYu
aW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9p
bmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShl
dmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0
aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVy
X3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9n
ZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2Jq
ZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4g
bWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5h
bWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwg
aW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9
IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4
LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBj
dXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdf
Y3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwog
ICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRo
X3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRh
dGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5k
X3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVb
J3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVf
dGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawog
ICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpB
c3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRl
bnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9y
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNh
dXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVf
c3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90
YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9u
X2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0
X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9
IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3Vy
ZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3Jt
X3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0g
QnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5
IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdl
dF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxm
Ll9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVj
dXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBl
eGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0g
c2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVj
dGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5
OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUs
IHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAg
cmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28u
ZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xv
Z19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAg
c2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAog
ICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWls
ZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRh
dHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2Zl
dGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9h
bGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNv
bXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGlu
ZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29y
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAg
ICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVu
c3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMu
cHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRq
X2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiBy
ZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9n
X2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBp
biBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9z
dG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90
YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0
YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
NzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2Vy
dCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9u
RXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIg
aW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRf
dGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAg
cmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rh
c2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVf
aW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9n
ZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAw
MSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVw
ZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5h
bF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2Fu
ZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9y
ZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNr
ZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIw
OSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9n
ZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAg
ICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxv
Y2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9y
X3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3Nl
cnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlv
bkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVy
IGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGlu
IHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRl
cm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1
NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9y
bWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50
LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25f
ZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVy
c2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9s
YXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9h
bmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3Rv
cmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFz
a2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNr
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBh
c3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2Vy
dGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9n
X2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNz
ZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRp
b25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmll
ciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRl
ZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAg
ICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21f
dGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lw
ZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYu
X2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4g
dXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVy
bmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVf
YW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0
b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rh
c2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYu
X2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUK
ICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgo
bG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9m
b3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFz
c2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0
aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2df
ZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3Nl
cnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlv
bkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVy
IGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGlu
IHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRl
cm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1
NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9y
bWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50
LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25f
ZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVy
c2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9s
YXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODks
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5z
dXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5v
cm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3Qg
PSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIu
cHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYu
Z2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNl
bGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4
ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGlu
IGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3Ig
PSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25u
ZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5l
IDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1
ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAg
ICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5n
by5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNl
bGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0
ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9z
dGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51
cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVf
YW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3Rh
dGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9
IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmls
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFz
a2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9y
X3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVy
c2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3Jl
X3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sK
ICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10K
QXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlk
ZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJv
cgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRf
dGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlv
bl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dl
dF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmog
PSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1
cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9y
bV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5w
eSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5n
ZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2Vs
Zi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhl
Y3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4g
ZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9
IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5l
Y3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUg
OTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVl
LCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAg
IHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdv
LmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
NjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2Vs
Zi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYy
LCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYu
aW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9i
dWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dy
YXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5Iiwg
bGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9x
dWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9y
ZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRl
X3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVj
dXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2Vs
Zi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlv
bigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwg
aW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRy
YWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFp
c2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIu
dXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19l
dmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
c3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2
ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3
NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0
IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25F
cnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBp
biBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICBy
ZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFz
a2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9p
bmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dl
dF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAx
LCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBk
YXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFs
X3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0
ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9z
dGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9z
dG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90
YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0
YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4g
c3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9
IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmls
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFz
a2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9y
X3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVy
c2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
ODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4g
dXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVy
bmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVf
YW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0
b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rh
c2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYu
X2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUK
ICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgo
bG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9m
b3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFz
c2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0
aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZp
ZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0
ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawog
ICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9t
X3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNp
cGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxm
Ll9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGlu
IHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRl
cm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4
OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1
cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJu
YWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODks
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5z
dXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5v
cm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3Qg
PSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIu
cHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYu
Z2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNl
bGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4
ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGlu
IGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3Ig
PSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25u
ZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5l
IDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1
ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAg
ICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5n
by5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNh
dXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVf
bG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAg
ICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxk
CiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJi
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1
aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdl
dGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5f
ZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNo
X2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0g
Y29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBs
aW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJz
b3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IK
ICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYu
ZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGls
cy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwg
ZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGlu
IHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRo
ZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9s
b2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9l
bnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAg
ICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2Fy
Z3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0g
bGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9f
CiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1
LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAg
IHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21w
aWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25u
ZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIs
IGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJz
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNv
cgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRq
X2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBs
aW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNr
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBh
c3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2Vy
dGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlm
aWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIs
IGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5p
bnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBk
YXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2Fu
ZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRl
Wyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3Jl
X3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sK
ICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10K
QXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBz
dG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNp
cGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVy
X3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxl
cGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVu
dGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9z
dGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rh
c2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25f
ZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRf
cmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0g
c2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYy
LCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYu
aW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9p
bmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShl
dmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0
aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVy
X3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9n
ZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2Jq
ZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4g
bWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5h
bWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwg
aW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9
IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4
LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBj
dXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdf
Y3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwog
ICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRo
X3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRh
dGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5k
X3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVb
J3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVf
dGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawog
ICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpB
c3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRl
bnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9y
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNl
bGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0
ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9z
dGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9u
ID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tm
aWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90
YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9m
b3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92
ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBk
YXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2Fu
ZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRl
Wyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3Jl
X3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sK
ICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10K
QXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlk
ZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJv
cgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRf
dGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlv
bl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dl
dF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmog
PSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1
cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9y
bV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5w
eSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5n
ZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2Vs
Zi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhl
Y3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4g
ZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9
IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5l
Y3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUg
OTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVl
LCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAg
IHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdv
LmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
NjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2Vs
Zi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYy
LCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYu
aW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVw
ZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9h
bmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0
ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0g
c2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNr
ZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3Jf
cGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJz
aW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4
OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9l
bnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxm
Lm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdl
ci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2Vs
Zi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAg
c2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIu
ZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwg
aW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNv
ciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nv
bm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxp
bmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UK
ICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGph
bmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3Qg
Y2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9y
ZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQK
ICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVp
bGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5i
cmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAg
YnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4g
Z2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25l
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxm
Ll9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0
Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMg
PSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIs
IGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1
cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNv
cgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2Vs
Zi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0
aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBl
LCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwg
aW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRl
bnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9y
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNl
bGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZv
bGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lw
ZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmls
ZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9y
bWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xh
eWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGlu
IF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51
cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVf
YW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3Rh
dGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3Rv
cmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFz
awogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEn
XQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0
b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
ODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4g
dXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVy
bmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVf
YW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0
b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rh
c2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYu
X2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUK
ICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgo
bG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9m
b3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFz
c2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0
aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZp
ZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2Miwg
aW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmlu
dGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dp
bmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
MzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5m
b3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZl
bnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlv
bl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92
ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0
X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRl
X2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9z
dG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0
YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4
NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODks
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5z
dXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5v
cm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3Qg
PSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIu
cHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYu
Z2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNl
bGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4
ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGlu
IGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3Ig
PSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25u
ZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5l
IDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1
ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAg
ICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5n
by5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNh
dXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVf
bG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAg
ICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxk
CiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJi
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1
aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdl
dGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5f
ZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNo
X2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0g
Y29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBs
aW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJz
b3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IK
ICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYu
ZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGls
cy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwg
ZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGlu
IHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRo
ZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9s
b2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9l
bnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAg
ICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2Fy
Z3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0g
bGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9f
CiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1
LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAg
IHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21w
aWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25u
ZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIs
IGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJz
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNv
cgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRq
X2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBs
aW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQs
IGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5k
X3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3Jl
X3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tk
YXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNz
ZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRp
b25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0
YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZv
cm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwg
aW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lv
bl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIg
aW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVu
dChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0
IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3Rv
cmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9y
ZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1
ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVf
YW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0
b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rh
c2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFz
ayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAg
YXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3Nl
cnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3Jl
X3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9p
bmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAz
MSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVy
c2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZp
ZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2Miwg
aW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmlu
dGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRh
dGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5k
X3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVb
J3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNl
bGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2Zp
bGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3Bh
dGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lv
bl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rh
c2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAg
IGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNz
ZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50
aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2
MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxm
LmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVf
aW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUo
ZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1h
dGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXll
cl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBf
Z2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBk
YXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2Fu
ZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRl
Wyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3Jl
X3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sK
ICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10K
QXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlk
ZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJv
cgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRf
dGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlv
bl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dl
dF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmog
PSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1
cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9y
bV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5w
eSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5n
ZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2Vs
Zi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhl
Y3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4g
ZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9
IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5l
Y3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUg
OTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVl
LCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAg
IHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdv
LmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
NjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2Vs
Zi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
dXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRl
X2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0
YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0
b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rh
c2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRh
J10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24g
d2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBp
biBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9y
ZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxh
eWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxm
aWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0
aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9i
dWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxm
LmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAg
ICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVy
biBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xv
bmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNl
bGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9m
ZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0
cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5
IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24u
Y3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vy
c29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBz
ZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
dXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5
cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1
LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQs
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBp
ZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJy
b3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3Qg
Y2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9y
ZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQK
ICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVp
bGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5i
cmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAg
YnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4g
Z2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25l
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxm
Ll9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0
Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMg
PSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIs
IGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1
cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNv
cgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2Vs
Zi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0
aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBl
LCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwg
aW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRl
bnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9y
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNl
bGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZv
bGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lw
ZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmls
ZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9y
bWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xh
eWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGlu
IF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51
cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVf
YW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3Rh
dGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3Rv
cmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFz
awogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEn
XQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYx
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQg
aWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVy
cm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0
IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3Rv
cmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRl
ZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0
aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBf
Z2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29i
aiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBz
ZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRh
dGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxf
c3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRf
c3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVf
dGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2Rh
dGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDks
IGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0
X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAg
bGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2Nh
bGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9w
YXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3
NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0
IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25F
cnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBp
biBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1
cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJu
YWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcs
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1h
dGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50
YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zy
b21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNp
b25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5
ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5k
X3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3Jl
X3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tk
YXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBp
biBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51
cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVf
YW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3Rh
dGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3Rv
cmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFz
awogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEn
XQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGlu
IHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3Jl
Y2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5
ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZp
bGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRo
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlk
ZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJv
cgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVf
bG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0
LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2Fu
ZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9y
ZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNr
ZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFz
c2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0
aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9z
dGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5m
b3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEs
IGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNp
b25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVy
IGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2Yg
dGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZl
bnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYu
X2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNl
bGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1
ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5h
Z2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihz
ZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9h
bGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAg
ICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxl
ci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4
LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vy
c29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVf
Y29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5Iiwg
bGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNf
dmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlz
ZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpk
amFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0
b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVu
dAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9i
dWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxm
LmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAg
ICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVy
biBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xv
bmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNl
bGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9m
ZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0
cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5
IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24u
Y3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vy
c29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBz
ZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
dXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5
cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1
LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdh
cyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3Rv
cmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVf
dGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawog
ICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpB
c3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRl
bnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9y
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNh
dXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVf
c3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90
YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9u
X2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0
X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9
IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3Vy
ZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3Jt
X3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0g
QnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5
IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdl
dF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxm
Ll9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVj
dXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBl
eGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0g
c2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVj
dGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5
OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUs
IHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAg
cmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28u
ZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2
MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxm
LmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51
cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVf
YW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3Rh
dGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3Rv
cmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFz
awogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEn
XQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGlu
IHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3Jl
Y2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5
ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZp
bGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRo
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlk
ZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJv
cgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBz
ZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRh
dGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxf
c3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlv
biA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNr
ZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21f
dGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25f
Zm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJf
dmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0
b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rh
c2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRh
J10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24g
d2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBz
dG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2Jq
ZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4g
bWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5h
bWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwg
aW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9
IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4
LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBj
dXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdf
Y3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwog
ICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRo
X3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dp
bmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2Yg
dGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZl
bnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYu
X2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNl
bGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1
ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5h
Z2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihz
ZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9h
bGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAg
ICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxl
ci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4
LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vy
c29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVf
Y29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5Iiwg
bGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNf
dmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlz
ZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpk
amFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0
b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVu
dAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9i
dWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxm
LmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAg
ICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVy
biBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xv
bmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNl
bGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9m
ZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0
cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5
IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24u
Y3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vy
c29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBz
ZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
dXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5
cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1
LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQs
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBp
ZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJy
b3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4g
c2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFz
ayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVj
aXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tm
aWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5m
b3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRf
bGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwg
aW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0
ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9z
dGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2df
ZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNl
bGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAg
IHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRy
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9t
YW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0
cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRj
aF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxs
CiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21w
aWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUg
ODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAg
Y3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1
cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5
IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9l
eGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVy
YWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmll
ciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBp
biB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50
ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAz
NTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZv
cm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVu
dC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9u
X2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3Zl
cnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRf
bGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVf
YW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0
b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rh
c2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0
LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2Fu
ZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9y
ZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNr
ZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFz
c2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0
aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9z
dGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5m
b3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEs
IGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNp
b25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVy
IGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGlu
IHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRl
cm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRl
X2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9z
dG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0
YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxm
Ll9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxl
CiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRo
KGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25f
Zm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9l
bnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAg
ICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2Fy
Z3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0g
bGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9f
CiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1
LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAg
IHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21w
aWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25u
ZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIs
IGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJz
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNv
cgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRq
X2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBs
aW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNr
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBh
c3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2Vy
dGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9n
X2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBp
biBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2df
ZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNl
bGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAg
IHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRy
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9t
YW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0
cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRj
aF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxs
CiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21w
aWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUg
ODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAg
Y3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1
cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5
IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9l
eGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVy
YWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19l
dmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4g
c3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93
aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2
ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZl
bnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0
b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3Jl
X3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sK
ICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10K
QXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlk
ZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJv
cgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRf
dGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlv
bl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dl
dF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmog
PSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1
cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9y
bV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5w
eSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5n
ZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2Vs
Zi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhl
Y3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4g
ZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9
IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5l
Y3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUg
OTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVl
LCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAg
IHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdv
LmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
NjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2Vs
Zi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9n
X2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2df
ZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGlu
IHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9i
dWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dy
YXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5Iiwg
bGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9x
dWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9y
ZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRl
X3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVj
dXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2Vs
Zi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlv
bigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwg
aW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRy
YWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFp
c2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIu
dXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19l
dmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
c3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2
ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24g
d2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBz
dG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9y
ZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNr
CiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSdd
CkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEs
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBp
ZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJy
b3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3Qg
Y2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9y
ZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVk
X3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRp
b25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9n
ZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2Jq
ID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5z
dXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5v
cm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3Qg
PSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIu
cHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYu
Z2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNl
bGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4
ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGlu
IGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3Ig
PSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25u
ZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5l
IDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1
ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAg
ICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5n
by5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNl
bGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0
ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9z
dGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9z
dG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90
YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0
YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwg
aW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRf
cmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBs
YXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2Fs
ZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3Bh
dGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQg
aWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVy
cm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0
IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3Rv
cmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9y
ZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1
ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQo
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVf
bG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0
LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBm
b2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1
cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9y
bV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5w
eSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5n
ZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2Vs
Zi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhl
Y3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4g
ZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9
IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5l
Y3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUg
OTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVl
LCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAg
IHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdv
LmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9s
b2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xv
Z19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwg
aW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9n
X2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2df
ZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGlu
IHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9i
dWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dy
YXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5Iiwg
bGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9x
dWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9y
ZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRl
X3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVj
dXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2Vs
Zi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlv
bigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwg
aW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRy
YWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFp
c2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIu
dXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19l
dmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
c3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2
ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24g
d2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBz
dG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2Jq
ZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4g
bWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5h
bWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwg
aW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9
IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4
LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBj
dXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdf
Y3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwog
ICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRo
X3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dp
bmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2Yg
dGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZl
bnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYu
X2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNl
bGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1
ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5h
Z2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihz
ZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9h
bGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAg
ICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxl
ci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4
LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vy
c29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVf
Y29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5Iiwg
bGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNf
dmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlz
ZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpk
amFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBp
biBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1
cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJu
YWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcs
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1h
dGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50
YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zy
b21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNp
b25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5
ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5k
X3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3Jl
X3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tk
YXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBp
biBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2df
ZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNl
bGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAg
IHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRy
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9t
YW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0
cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRj
aF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxs
CiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21w
aWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUg
ODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAg
Y3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1
cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5
IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9l
eGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVy
YWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19l
dmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4g
c3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93
aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2
ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZl
bnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0
b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
ODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVu
dChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0
IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3Rv
cmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9y
ZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1
ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQo
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVf
bG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0
LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBm
b2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1
cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9y
bV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5w
eSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5n
ZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2Vs
Zi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhl
Y3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4g
ZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9
IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5l
Y3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUg
OTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVl
LCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAg
IHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdv
LmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
NjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2Vs
Zi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
dXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRl
X2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0
YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24g
PSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2Zp
bGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rh
c2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zv
cl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3Zl
cnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9y
ZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNr
CiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSdd
CkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdh
cyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3Rv
cmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4
OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9l
bnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxm
Lm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdl
ci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2Vs
Zi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAg
c2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIu
ZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwg
aW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNv
ciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nv
bm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxp
bmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UK
ICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGph
bmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3Qg
Y2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9y
ZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQK
ICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVp
bGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5i
cmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAg
YnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4g
Z2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25l
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxm
Ll9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0
Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMg
PSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIs
IGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1
cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNv
cgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2Vs
Zi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0
aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBl
LCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwg
aW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMg
dGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3Jl
X2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4
NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODks
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5z
dXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5v
cm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3Qg
PSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIu
cHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYu
Z2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNl
bGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4
ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGlu
IGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3Ig
PSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25u
ZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5l
IDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1
ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAg
ICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5n
by5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNh
dXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVf
bG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAg
ICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxk
CiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJi
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1
aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdl
dGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5f
ZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNo
X2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0g
Y29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBs
aW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJz
b3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IK
ICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYu
ZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGls
cy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwg
ZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGlu
IHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRo
ZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9s
b2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9l
bnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAg
ICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2Fy
Z3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0g
bGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9f
CiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1
LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAg
IHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21w
aWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25u
ZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIs
IGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJz
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNv
cgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRq
X2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBs
aW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQs
IGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZv
bGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3Vy
ZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3Jt
X3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0g
QnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5
IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdl
dF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxm
Ll9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVj
dXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBl
eGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0g
c2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVj
dGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5
OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUs
IHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAg
cmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28u
ZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xv
Z19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAg
c2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAog
ICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWls
ZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRh
dHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2Zl
dGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9h
bGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNv
bXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGlu
ZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29y
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAg
ICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVu
c3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMu
cHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRq
X2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiBy
ZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9n
X2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBp
biBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIs
IGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5p
bnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBk
YXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2Fu
ZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRl
Wyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBz
ZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tm
aWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9w
YXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNp
b25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAg
ICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFz
c2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVf
bG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0
LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBm
b2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1
cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9y
bV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5w
eSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5n
ZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2Vs
Zi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhl
Y3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4g
ZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9
IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5l
Y3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUg
OTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVl
LCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAg
IHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdv
LmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9s
b2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xv
Z19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwg
aW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9n
X2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2df
ZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGlu
IHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9i
dWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dy
YXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5Iiwg
bGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9x
dWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9y
ZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRl
X3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVj
dXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2Vs
Zi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlv
bigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwg
aW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRy
YWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFp
c2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIu
dXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19l
dmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
c3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2
ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24g
d2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBz
dG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9y
ZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNr
CiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSdd
CkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEs
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBp
ZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJy
b3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3Qg
Y2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9y
ZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVk
X3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRp
b25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9n
ZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2Jq
ID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5z
dXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5v
cm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3Qg
PSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIu
cHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYu
Z2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNl
bGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4
ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGlu
IGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3Ig
PSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25u
ZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5l
IDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1
ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAg
ICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5n
by5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNh
dXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVf
bG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAg
ICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxk
CiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJi
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1
aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdl
dGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5f
ZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNo
X2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0g
Y29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBs
aW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJz
b3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IK
ICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYu
ZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGls
cy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwg
ZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGlu
IHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50
aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2
MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxm
LmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51
cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVf
YW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3Rh
dGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9
IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmls
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFz
a2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9y
X3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVy
c2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3Jl
X3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sK
ICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10K
QXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBz
dG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNp
cGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVy
X3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxl
cGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVu
dGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
NjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2Vs
Zi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
dXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRl
X2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0
YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24g
PSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2Zp
bGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rh
c2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zv
cl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3Zl
cnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9y
ZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNr
CiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSdd
CkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdh
cyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3Rv
cmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVf
dGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawog
ICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpB
c3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRl
bnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9y
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNl
bGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0
ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9z
dGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9z
dG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90
YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0
YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAz
NjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2Vy
dCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9u
RXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFy
dGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3Jt
YXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGlu
IF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25f
b2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0
IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3Rv
cmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRl
ZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0
aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBf
Z2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29i
aiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBz
ZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRh
dGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxf
c3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRf
c3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVf
dGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2Rh
dGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDks
IGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0
X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAg
bGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2Nh
bGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9w
YXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3
NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0
IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25F
cnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBp
biBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1
cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJu
YWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9h
bmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3Rv
cmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFz
a2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
MDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5f
Z2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQog
ICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChs
b2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zv
cl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNz
ZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRp
b25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19l
dmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4g
c3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBk
YXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2Fu
ZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRl
Wyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3Jl
X3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sK
ICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10K
QXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBz
dG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNp
cGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVy
X3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxl
cGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVu
dGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
NjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2Vs
Zi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
dXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRl
X2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0
YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24g
PSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2Zp
bGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rh
c2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zv
cl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3Zl
cnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9y
ZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNr
CiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSdd
CkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdh
cyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3Rv
cmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4
OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9l
bnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxm
Lm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdl
ci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2Vs
Zi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAg
c2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIu
ZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwg
aW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNv
ciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nv
bm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxp
bmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UK
ICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGph
bmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3Qg
Y2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9y
ZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQK
ICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVp
bGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5i
cmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAg
YnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4g
Z2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25l
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxm
Ll9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0
Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMg
PSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIs
IGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1
cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNv
cgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2Vs
Zi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0
aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBl
LCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwg
aW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMg
dGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3Jl
X2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4
NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODks
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5z
dXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5v
cm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3Qg
PSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIu
cHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYu
Z2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNl
bGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4
ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGlu
IGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3Ig
PSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25u
ZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5l
IDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1
ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAg
ICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5n
by5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNh
dXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVf
bG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAg
ICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxk
CiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJi
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1
aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdl
dGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5f
ZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNo
X2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0g
Y29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBs
aW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJz
b3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IK
ICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYu
ZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGls
cy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwg
ZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGlu
IHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRo
ZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9s
b2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9l
bnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAg
ICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2Fy
Z3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0g
bGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9f
CiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1
LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAg
IHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21w
aWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25u
ZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIs
IGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJz
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNv
cgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRq
X2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBs
aW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQs
IGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZv
bGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3Vy
ZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3Jt
X3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0g
QnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5
IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdl
dF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxm
Ll9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVj
dXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBl
eGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0g
c2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVj
dGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5
OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUs
IHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAg
cmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28u
ZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xv
Z19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAg
c2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAog
ICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWls
ZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRh
dHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2Zl
dGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9h
bGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNv
bXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGlu
ZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29y
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAg
ICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVu
c3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMu
cHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRq
X2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiBy
ZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9n
X2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBp
biBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2df
ZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNl
bGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAg
IHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRy
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9t
YW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0
cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRj
aF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxs
CiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21w
aWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUg
ODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAg
Y3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1
cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5
IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9l
eGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVy
YWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19l
dmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4g
c3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93
aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2
ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZl
bnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0
b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
ODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVu
dChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0
IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3Rv
cmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9y
ZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1
ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQo
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVf
bG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0
LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBm
b2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1
cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9y
bV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5w
eSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5n
ZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2Vs
Zi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhl
Y3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4g
ZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9
IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5l
Y3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUg
OTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVl
LCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAg
IHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdv
LmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9s
b2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xv
Z19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwg
aW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9n
X2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2df
ZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3Nl
cnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlv
bkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVy
IGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2Yg
dGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVk
X3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAg
IHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90
YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBl
X2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5f
Z2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEw
MDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1
cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJu
YWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODks
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5z
dXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5v
cm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3Qg
PSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIu
cHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYu
Z2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNl
bGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4
ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGlu
IGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3Ig
PSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25u
ZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5l
IDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1
ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAg
ICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5n
by5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNh
dXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVf
bG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAg
ICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxk
CiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJi
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1
aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdl
dGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5f
ZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNo
X2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0g
Y29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBs
aW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJz
b3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IK
ICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYu
ZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGls
cy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwg
ZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGlu
IHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRo
ZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9s
b2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9l
bnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAg
ICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2Fy
Z3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0g
bGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9f
CiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1
LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAg
IHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21w
aWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25u
ZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIs
IGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJz
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNv
cgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRq
X2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBs
aW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQs
IGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZv
bGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3Vy
ZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3Jt
X3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0g
QnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5
IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdl
dF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxm
Ll9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVj
dXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBl
eGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0g
c2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVj
dGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5
OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUs
IHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAg
cmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28u
ZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xv
Z19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAg
c2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAog
ICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWls
ZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRh
dHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2Zl
dGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9h
bGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNv
bXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGlu
ZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29y
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAg
ICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVu
c3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMu
cHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRq
X2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiBy
ZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9n
X2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBp
biBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2df
ZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNl
bGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAg
IHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRy
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9t
YW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0
cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRj
aF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxs
CiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21w
aWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUg
ODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAg
Y3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1
cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5
IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9l
eGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVy
YWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19l
dmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4g
c3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93
aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2
ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZl
bnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0
b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
ODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVu
dChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGlu
IHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQo
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBz
ZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBm
b2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNr
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNp
cGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2Zp
bGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZv
cm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9s
YXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBp
biBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9n
X2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZp
ZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19l
dmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
c3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2
ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3
NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0
IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25F
cnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBp
biBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICBy
ZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFz
a2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9p
bmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dl
dF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAx
LCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5z
dXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5v
cm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3Qg
PSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIu
cHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYu
Z2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNl
bGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4
ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGlu
IGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3Ig
PSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25u
ZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5l
IDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1
ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAg
ICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5n
by5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNh
dXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVf
bG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAg
ICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxk
CiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJi
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1
aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdl
dGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5f
ZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNo
X2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0g
Y29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBs
aW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJz
b3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IK
ICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYu
ZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGls
cy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwg
ZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGlu
IHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50
aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xv
Z19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAg
c2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAog
ICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWls
ZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRh
dHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2Zl
dGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9h
bGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNv
bXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGlu
ZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29y
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAg
ICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVu
c3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMu
cHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRq
X2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiBy
ZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9n
X2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBp
biBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2df
ZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNl
bGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAg
IHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRy
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9t
YW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0
cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRj
aF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxs
CiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21w
aWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUg
ODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAg
Y3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1
cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5
IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9l
eGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVy
YWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19l
dmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4g
c3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3Rv
cmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFz
awogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEn
XQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYx
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQg
aWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVy
cm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0
IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3Rv
cmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRl
ZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0
aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBf
Z2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29i
aiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVf
bG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0
LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRh
dGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxf
c3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYy
LCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYu
aW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVw
ZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9h
bmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0
ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0g
c2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNr
ZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3Jf
cGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJz
aW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4
OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1
cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJu
YWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9h
bmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3Rv
cmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFz
a2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
MDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5f
Z2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQog
ICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChs
b2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zv
cl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBp
biBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9z
dG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90
YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0
YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4g
c3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93
aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2
ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIg
aW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVu
dChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGlu
IHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVw
ZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5h
bF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1Nywg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0
aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRh
c2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJv
bV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lv
bl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXll
cl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
dXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRl
X2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0
YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0
b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rh
c2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRh
J10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24g
d2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBp
biBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9y
ZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxh
eWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxm
aWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0
aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9i
dWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxm
LmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAg
ICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVy
biBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xv
bmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNl
bGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9m
ZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0
cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5
IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24u
Y3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vy
c29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBz
ZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
dXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5
cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1
LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdh
cyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3Rv
cmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVf
dGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawog
ICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpB
c3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMg
dGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3Jl
X2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4
NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9h
bmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3Rv
cmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFz
a2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQs
IGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0
ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9z
dGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9z
dG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90
YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0
YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwg
aW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRf
cmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBs
YXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2Fs
ZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3Bh
dGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQg
aWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVy
cm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGlu
IHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVw
ZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5h
bF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1Nywg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0
aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRh
c2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJv
bV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lv
bl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXll
cl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRf
c3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVf
dGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2Rh
dGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGlu
IHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9i
dWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dy
YXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5Iiwg
bGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9x
dWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9y
ZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRl
X3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVj
dXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2Vs
Zi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlv
bigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwg
aW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRy
YWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFp
c2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIu
dXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19l
dmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
c3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2
ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3
NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0
IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25F
cnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBp
biBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICBy
ZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFz
a2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9p
bmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dl
dF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAx
LCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBk
YXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFs
X3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5k
X3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3Jl
X3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tk
YXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNz
ZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRp
b25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0
YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZv
cm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwg
aW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lv
bl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZl
bnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0
b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0
ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRf
c3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsn
dGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAg
ICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFz
c2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3Rv
cmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBl
X2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92
ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBh
dGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRp
ZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYy
LCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYu
aW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVw
ZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9h
bmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0
ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0g
c2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNr
ZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3Jf
cGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJz
aW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVf
dGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawog
ICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpB
c3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRl
bnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9y
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNh
dXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVf
c3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90
YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9u
X2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0
X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9
IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3Vy
ZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3Jt
X3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0g
QnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5
IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdl
dF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxm
Ll9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVj
dXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBl
eGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0g
c2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVj
dGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5
OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUs
IHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAg
cmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28u
ZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2
MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxm
LmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51
cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVf
YW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3Rh
dGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3Rv
cmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFz
awogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEn
XQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGlu
IHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3Jl
Y2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5
ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZp
bGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRo
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlk
ZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJv
cgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBz
ZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBm
b2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNr
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNp
cGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2Zp
bGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZv
cm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9s
YXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBp
biBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
dXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRl
X2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0
YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVw
ZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9h
bmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0
ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9y
ZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNr
CiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSdd
CkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQs
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBp
ZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJy
b3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4g
c2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBk
YXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFs
X3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRp
b24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFz
a2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9t
X3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9u
X2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVy
X3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51
cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVf
YW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3Rh
dGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93
aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2
ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZl
bnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0
b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
ODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVu
dChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0
IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3Rv
cmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9y
ZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1
ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQo
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVf
bG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0
LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBm
b2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1
cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9y
bV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5w
eSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5n
ZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2Vs
Zi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhl
Y3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4g
ZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9
IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5l
Y3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUg
OTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVl
LCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAg
IHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdv
LmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9s
b2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xv
Z19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwg
aW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9n
X2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2df
ZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGlu
IHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9i
dWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dy
YXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5Iiwg
bGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9x
dWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9y
ZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRl
X3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVj
dXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2Vs
Zi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlv
bigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwg
aW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRy
YWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFp
c2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIu
dXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19l
dmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
c3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2
ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24g
d2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBz
dG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2Jq
ZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4g
bWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5h
bWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwg
aW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9
IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4
LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBj
dXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdf
Y3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwog
ICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRo
X3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dp
bmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2Yg
dGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZl
bnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYu
X2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNl
bGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1
ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5h
Z2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihz
ZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9h
bGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAg
ICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxl
ci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4
LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vy
c29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVf
Y29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5Iiwg
bGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNf
dmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlz
ZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpk
amFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0
b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVu
dAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9i
dWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxm
LmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAg
ICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVy
biBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xv
bmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNl
bGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9m
ZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0
cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5
IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24u
Y3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vy
c29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBz
ZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
dXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5
cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1
LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdh
cyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3Rv
cmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4
OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9l
bnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxm
Lm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdl
ci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2Vs
Zi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAg
c2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIu
ZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwg
aW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNv
ciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nv
bm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxp
bmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UK
ICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGph
bmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3Qg
Y2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9y
ZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQK
ICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVp
bGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5i
cmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAg
YnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4g
Z2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25l
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxm
Ll9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0
Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMg
PSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIs
IGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1
cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNv
cgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2Vs
Zi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0
aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBl
LCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwg
aW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMg
dGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3Jl
X2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4
NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODks
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5z
dXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5v
cm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3Qg
PSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIu
cHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYu
Z2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNl
bGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4
ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGlu
IGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3Ig
PSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25u
ZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5l
IDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1
ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAg
ICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5n
by5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNh
dXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVf
bG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAg
ICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxk
CiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJi
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1
aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdl
dGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5f
ZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNo
X2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0g
Y29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBs
aW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJz
b3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IK
ICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYu
ZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGls
cy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwg
ZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGlu
IHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRo
ZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9s
b2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9l
bnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAg
ICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2Fy
Z3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0g
bGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9f
CiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1
LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAg
IHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21w
aWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25u
ZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIs
IGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJz
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNv
cgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRq
X2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBs
aW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQs
IGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZv
bGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3Vy
ZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3Jt
X3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0g
QnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5
IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdl
dF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxm
Ll9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVj
dXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBl
eGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0g
c2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVj
dGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5
OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUs
IHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAg
cmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28u
ZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xv
Z19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAg
c2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAog
ICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWls
ZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRh
dHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2Zl
dGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9h
bGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNv
bXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGlu
ZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29y
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAg
ICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVu
c3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMu
cHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRq
X2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiBy
ZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9n
X2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNz
ZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRp
b25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmll
ciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRl
ZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAg
ICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21f
dGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lw
ZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYu
X2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4g
dXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVy
bmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQo
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVf
bG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0
LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRh
dGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxf
c3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRf
c3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVf
dGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2Rh
dGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDks
IGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0
X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAg
bGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2Nh
bGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9w
YXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24g
d2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBz
dG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2Jq
ZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4g
bWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5h
bWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwg
aW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9
IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4
LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBj
dXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdf
Y3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwog
ICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRo
X3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dp
bmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGlu
IHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRl
cm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4
OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9l
bnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxm
Lm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdl
ci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2Vs
Zi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAg
c2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIu
ZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwg
aW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNv
ciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nv
bm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxp
bmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UK
ICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGph
bmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3Qg
Y2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9y
ZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQK
ICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVp
bGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5i
cmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAg
YnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4g
Z2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25l
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxm
Ll9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0
Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMg
PSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIs
IGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1
cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNv
cgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2Vs
Zi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0
aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBl
LCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwg
aW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMg
dGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3Jl
X2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4
NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9h
bmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3Rv
cmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFz
a2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNr
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBh
c3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2Vy
dGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVf
c3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2lu
Zm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMx
LCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJz
aW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNl
bGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAg
IHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRy
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9t
YW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0
cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRj
aF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxs
CiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21w
aWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUg
ODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAg
Y3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1
cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5
IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9l
eGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVy
YWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19l
dmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4g
c3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBk
YXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2Fu
ZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRl
Wyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3Jl
X3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sK
ICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10K
QXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBz
dG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNp
cGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVy
X3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxl
cGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVu
dGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9s
b2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRp
ZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYy
LCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYu
aW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9p
bmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShl
dmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0
aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVy
X3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9n
ZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2Jq
ZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4g
bWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5h
bWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwg
aW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9
IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4
LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBj
dXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdf
Y3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwog
ICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRo
X3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRh
dGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5k
X3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVb
J3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNl
bGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2Zp
bGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3Bh
dGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lv
bl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rh
c2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAg
IGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNz
ZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRo
ZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9y
ZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVf
aW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEw
MzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3Zl
cnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0
aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAg
c2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAog
ICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWls
ZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRh
dHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2Zl
dGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9h
bGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNv
bXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGlu
ZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29y
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAg
ICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVu
c3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMu
cHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRq
X2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiBy
ZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlm
aWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFy
dGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sK
ICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJv
bV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVj
aXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2Vs
Zi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2
ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIg
aW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVu
dChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0
IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3Rv
cmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9y
ZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAg
ICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFz
c2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVu
dGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
NjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2Vs
Zi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBl
X2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxl
KGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3Jt
YXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5
ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4g
X2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9i
dWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dy
YXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5Iiwg
bGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9x
dWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9y
ZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRl
X3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVj
dXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2Vs
Zi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlv
bigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwg
aW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRy
YWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFp
c2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIu
dXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19l
dmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
c3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2
ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3
NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0
IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25F
cnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBp
biBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICBy
ZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFz
a2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9p
bmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dl
dF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAx
LCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5z
dXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5v
cm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3Qg
PSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIu
cHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYu
Z2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNl
bGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4
ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGlu
IGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3Ig
PSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25u
ZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5l
IDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1
ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAg
ICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5n
by5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNl
bGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZv
bGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3Vy
ZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3Jt
X3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0g
QnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5
IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdl
dF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxm
Ll9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVj
dXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBl
eGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0g
c2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVj
dGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5
OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUs
IHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAg
cmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28u
ZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xv
Z19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAg
c2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAog
ICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWls
ZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRh
dHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2Zl
dGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9h
bGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNv
bXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGlu
ZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29y
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAg
ICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVu
c3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMu
cHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRq
X2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiBy
ZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlm
aWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIs
IGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5p
bnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBk
YXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2Fu
ZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRl
Wyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBz
ZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tm
aWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9w
YXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNp
b25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAg
ICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFz
c2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVu
dGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
NjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2Vs
Zi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBl
X2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxl
KGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3Jt
YXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5
ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4g
X2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9i
dWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dy
YXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5Iiwg
bGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9x
dWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9y
ZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRl
X3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVj
dXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2Vs
Zi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlv
bigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwg
aW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRy
YWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFp
c2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIu
dXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2Miwg
aW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmlu
dGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dp
bmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2Yg
dGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZl
bnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYu
X2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNl
bGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1
ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5h
Z2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihz
ZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9h
bGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAg
ICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxl
ci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4
LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vy
c29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVf
Y29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5Iiwg
bGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNf
dmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlz
ZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpk
amFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0
b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVu
dAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9i
dWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxm
LmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAg
ICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVy
biBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xv
bmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNl
bGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9m
ZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0
cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5
IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24u
Y3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vy
c29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBz
ZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
dXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5
cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1
LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdh
cyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3Rv
cmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4
OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9l
bnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxm
Lm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdl
ci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2Vs
Zi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAg
c2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIu
ZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwg
aW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNv
ciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nv
bm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxp
bmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UK
ICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGph
bmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3Qg
Y2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9y
ZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQK
ICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVp
bGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5i
cmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAg
YnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4g
Z2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25l
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxm
Ll9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0
Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMg
PSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIs
IGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1
cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNv
cgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2Vs
Zi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0
aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBl
LCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwg
aW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMg
dGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3Jl
X2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4
NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODks
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBk
YXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFs
X3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5k
X3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3Jl
X3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tk
YXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5
LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dl
dF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAg
IGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9j
YWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3Jf
cGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
NzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2Vy
dCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9u
RXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIg
aW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRf
dGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAg
cmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rh
c2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVf
aW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9n
ZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAw
MSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVw
ZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5h
bF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2Fu
ZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9y
ZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNr
ZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwg
aW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRf
c3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVf
dGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2Rh
dGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
MzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3Nl
cnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlv
bkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
c3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3Rh
cnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9y
bWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBp
biBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9u
X29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYu
X2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNl
bGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1
ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5h
Z2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihz
ZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9h
bGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAg
ICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxl
ci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4
LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vy
c29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVf
Y29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5Iiwg
bGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNf
dmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlz
ZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpk
amFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0
b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVu
dAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9i
dWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxm
LmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAg
ICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVy
biBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xv
bmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNl
bGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9m
ZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0
cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5
IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24u
Y3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vy
c29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBz
ZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
dXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5
cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1
LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdh
cyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3Rv
cmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRl
X2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9z
dG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0
YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4
NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9h
bmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3Rv
cmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFz
a2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNr
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBh
c3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2Vy
dGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVf
c3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2lu
Zm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMx
LCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJz
aW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNl
bGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAg
IHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRy
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9t
YW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0
cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRj
aF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxs
CiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21w
aWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUg
ODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAg
Y3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1
cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5
IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9l
eGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVy
YWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19l
dmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4g
c3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBk
YXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2Fu
ZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRl
Wyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
ODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4g
dXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVy
bmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVf
YW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0
b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rh
c2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYu
X2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUK
ICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgo
bG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9m
b3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwg
aW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9n
X2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZp
ZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2Miwg
aW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmlu
dGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dp
bmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
MzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5m
b3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZl
bnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlv
bl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92
ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0
X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRl
X2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9z
dG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0
YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rh
c2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAg
IGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNz
ZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50
aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0
YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFz
awogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9m
cm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9y
ZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBz
ZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIs
IGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5p
bnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBk
YXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2Fu
ZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRl
Wyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
ODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVu
dChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0
IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3Rv
cmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9y
ZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1
ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVf
YW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0
b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rh
c2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFz
ayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAg
YXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3Nl
cnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xv
Z19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIw
OSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9n
ZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAg
ICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxv
Y2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9y
X3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGlu
IHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0
b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rh
c2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRh
J10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2
MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0
IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25F
cnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0
b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0
ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1h
dGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4g
X2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9v
YmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9l
bnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxm
Lm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdl
ci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2Vs
Zi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAg
c2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIu
ZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwg
aW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNv
ciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nv
bm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxp
bmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UK
ICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGph
bmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4g
c2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5z
dXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5v
cm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3Qg
PSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIu
cHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYu
Z2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNl
bGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4
ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGlu
IGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3Ig
PSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25u
ZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5l
IDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1
ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAg
ICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5n
by5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNh
dXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVf
bG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAg
ICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxk
CiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJi
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1
aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdl
dGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5f
ZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNo
X2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0g
Y29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBs
aW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJz
b3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IK
ICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYu
ZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGls
cy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwg
ZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGlu
IHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50
aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2
MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxm
LmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIs
IGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5p
bnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93
aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2lu
Zm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2
ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRp
b25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJf
dmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dl
dF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0
ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRf
c3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsn
dGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAg
ICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFz
c2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3Rv
cmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBl
X2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92
ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBh
dGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRp
ZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9n
X2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2df
ZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3Nl
cnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlv
bkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVy
IGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2Yg
dGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVk
X3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAg
IHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90
YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBl
X2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5f
Z2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEw
MDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1
cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJu
YWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9h
bmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3Rv
cmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFz
a2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQs
IGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5k
X3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3Jl
X3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tk
YXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNz
ZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRp
b25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0
YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZv
cm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwg
aW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lv
bl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIg
aW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4g
dXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVy
bmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3Jt
YXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQu
dGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9m
cm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJz
aW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xh
eWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2Fu
ZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9y
ZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNr
ZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFz
c2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0
aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZp
ZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0
ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawog
ICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9t
X3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNp
cGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxm
Ll9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGlu
IHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRl
cm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRl
X2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9z
dG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0
YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rh
c2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAg
IGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNz
ZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRo
ZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9y
ZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVf
aW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEw
MzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3Zl
cnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0
aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAg
c2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAog
ICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWls
ZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRh
dHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2Zl
dGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9h
bGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNv
bXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGlu
ZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29y
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAg
ICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVu
c3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMu
cHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRq
X2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiBy
ZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlm
aWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIs
IGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5p
bnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBk
YXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2Fu
ZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRl
Wyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBz
ZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tm
aWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9w
YXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNp
b25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAg
ICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFz
c2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVu
dGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
NjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2Vs
Zi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
dXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRl
X2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0
YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24g
PSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2Zp
bGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rh
c2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zv
cl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3Zl
cnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9y
ZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNr
CiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSdd
CkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQs
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBp
ZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJy
b3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4g
c2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFz
ayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVj
aXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tm
aWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5m
b3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRf
bGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwg
aW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0
ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9z
dGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51
cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVf
YW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3Rh
dGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3Rv
cmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFz
awogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEn
XQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGlu
IHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3Jl
Y2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5
ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZp
bGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRo
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlk
ZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJv
cgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBz
ZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRh
dGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxf
c3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlv
biA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNr
ZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21f
dGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25f
Zm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJf
dmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0
b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rh
c2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRh
J10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24g
d2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBz
dG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9y
ZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNr
CiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSdd
CkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEs
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBp
ZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJy
b3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3Qg
Y2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9y
ZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVk
X3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRp
b25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9n
ZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2Jq
ID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5z
dXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5v
cm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3Qg
PSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIu
cHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYu
Z2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNl
bGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4
ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGlu
IGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3Ig
PSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25u
ZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5l
IDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1
ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAg
ICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5n
by5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNl
bGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0
ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9z
dGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9z
dG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90
YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0
YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwg
aW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRf
cmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBs
YXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2Fs
ZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3Bh
dGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQg
aWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVy
cm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGlu
IHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVw
ZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5h
bF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1Nywg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0
aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRh
c2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJv
bV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lv
bl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXll
cl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRf
c3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVf
dGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2Rh
dGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGlu
IHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9i
dWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dy
YXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5Iiwg
bGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9x
dWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9y
ZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRl
X3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVj
dXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2Vs
Zi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlv
bigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwg
aW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRy
YWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFp
c2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIu
dXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19l
dmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVy
IGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGlu
IHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRl
cm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRl
X2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9z
dG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0
YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxm
Ll9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxl
CiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRo
KGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25f
Zm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9l
bnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAg
ICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2Fy
Z3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0g
bGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9f
CiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1
LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAg
IHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21w
aWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25u
ZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIs
IGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJz
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNv
cgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRq
X2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBs
aW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNr
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBh
c3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2Vy
dGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVf
c3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2lu
Zm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMx
LCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJz
aW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNl
bGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAg
IHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRy
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9t
YW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0
cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRj
aF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxs
CiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21w
aWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUg
ODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAg
Y3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1
cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5
IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9l
eGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVy
YWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmll
ciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBp
biB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50
ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
ODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVu
dChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0
IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3Rv
cmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlk
ZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJv
cgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBz
ZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBm
b2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNr
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNp
cGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2Zp
bGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZv
cm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9s
YXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBp
biBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
dXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRl
X2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0
YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0
b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rh
c2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRh
J10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2
MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0
IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25F
cnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0
b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0
ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1h
dGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4g
X2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9v
YmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9l
bnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxm
Lm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdl
ci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2Vs
Zi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAg
c2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIu
ZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwg
aW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNv
ciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nv
bm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxp
bmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UK
ICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGph
bmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4g
c2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBk
YXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFs
X3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5k
X3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3Jl
X3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tk
YXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNz
ZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRp
b25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmll
ciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRl
ZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAg
ICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21f
dGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lw
ZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYu
X2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRf
dGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAg
cmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rh
c2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVf
aW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9n
ZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAw
MSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVw
ZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5h
bF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2Fu
ZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9y
ZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNr
ZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIw
OSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9n
ZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAg
ICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxv
Y2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9y
X3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3Nl
cnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlv
bkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
c3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2
ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24g
d2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBz
dG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9y
ZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNr
CiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSdd
CkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdh
cyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3Rv
cmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVf
dGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawog
ICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpB
c3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRl
bnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9y
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNh
dXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVf
c3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90
YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9u
X2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0
X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9
IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3Vy
ZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3Jt
X3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0g
QnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5
IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdl
dF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxm
Ll9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVj
dXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBl
eGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0g
c2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVj
dGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5
OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUs
IHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAg
cmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28u
ZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2
MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxm
LmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51
cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVf
YW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3Rh
dGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3Rv
cmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFz
awogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEn
XQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGlu
IHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3Jl
Y2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5
ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZp
bGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRo
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlk
ZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJv
cgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBz
ZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBm
b2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNr
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNp
cGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2Zp
bGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZv
cm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9s
YXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBp
biBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
dXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRl
X2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0
YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0
b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rh
c2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRh
J10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2
MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0
IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25F
cnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0
b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0
ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1h
dGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4g
X2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9v
YmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9l
bnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxm
Lm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdl
ci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2Vs
Zi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAg
c2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIu
ZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwg
aW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNv
ciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nv
bm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxp
bmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UK
ICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGph
bmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4g
c2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBk
YXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFs
X3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5k
X3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3Jl
X3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tk
YXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5
LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dl
dF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAg
IGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9j
YWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3Jf
cGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
NzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2Vy
dCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9u
RXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIg
aW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4g
dXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVy
bmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3Jt
YXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQu
dGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9m
cm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJz
aW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xh
eWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2Fu
ZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9y
ZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNr
ZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFz
c2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0
aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZp
ZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2Miwg
aW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmlu
dGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dp
bmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
MzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5m
b3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZl
bnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlv
bl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92
ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0
X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRl
X2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9z
dG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0
YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rh
c2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAg
IGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNz
ZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50
aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0
YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFz
awogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9m
cm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9y
ZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBz
ZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIs
IGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5p
bnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93
aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBp
biB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50
ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
ODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVu
dChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGlu
IHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVw
ZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5h
bF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1Nywg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0
aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRh
c2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJv
bV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lv
bl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXll
cl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRf
c3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVf
dGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2Rh
dGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGlu
IHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVw
ZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9h
bmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0
ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9y
ZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNr
CiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSdd
CkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdh
cyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4g
c3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVj
aXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXll
cl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmls
ZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgK
ICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVp
bGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5i
cmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAg
YnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4g
Z2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25l
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxm
Ll9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0
Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMg
PSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIs
IGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1
cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNv
cgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2Vs
Zi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0
aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBl
LCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwg
aW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRl
bnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9y
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNl
bGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0
ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9z
dGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9u
ID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tm
aWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90
YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9m
b3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92
ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3Rv
cmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFz
awogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEn
XQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQg
aWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVy
cm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGlu
IHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rh
c2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJl
Y2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNr
ZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2lu
Zm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0
X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEs
IGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRh
dGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxf
c3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRf
c3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVf
dGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2Rh
dGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
MzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3Nl
cnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlv
bkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
c3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3Rh
cnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9y
bWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBp
biBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9u
X29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYu
X2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNl
bGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1
ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5h
Z2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihz
ZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9h
bGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAg
ICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxl
ci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4
LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vy
c29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVf
Y29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5Iiwg
bGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNf
dmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlz
ZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpk
amFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBp
biBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1
cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJu
YWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9h
bmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3Rv
cmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFz
a2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
MDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5f
Z2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQog
ICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChs
b2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zv
cl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNz
ZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRp
b25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmll
ciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBp
biB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50
ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAz
NTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZv
cm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVu
dC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9u
X2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3Zl
cnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRf
bGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVf
YW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0
b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rh
c2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0
LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBm
b2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1
cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9y
bV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5w
eSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5n
ZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2Vs
Zi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhl
Y3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4g
ZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9
IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5l
Y3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUg
OTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVl
LCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAg
IHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdv
LmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9s
b2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRp
ZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYy
LCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYu
aW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9p
bmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShl
dmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0
aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVy
X3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9n
ZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2Jq
ZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4g
bWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5h
bWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwg
aW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9
IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4
LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBj
dXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdf
Y3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwog
ICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRo
X3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRh
dGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5k
X3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVb
J3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4
OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9l
bnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxm
Lm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdl
ci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2Vs
Zi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAg
c2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIu
ZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwg
aW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNv
ciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nv
bm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxp
bmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UK
ICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGph
bmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3Qg
Y2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9y
ZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQK
ICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVp
bGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5i
cmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAg
YnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4g
Z2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25l
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxm
Ll9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0
Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMg
PSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIs
IGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1
cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNv
cgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2Vs
Zi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0
aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBl
LCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwg
aW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMg
dGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3Jl
X2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4
NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9h
bmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3Rv
cmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFz
a2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNr
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBh
c3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2Vy
dGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVf
c3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2lu
Zm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMx
LCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJz
aW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNl
bGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAg
IHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRy
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9t
YW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0
cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRj
aF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxs
CiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21w
aWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUg
ODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAg
Y3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1
cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5
IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9l
eGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVy
YWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmll
ciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2
ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZl
bnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0
b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
ODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVu
dChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0
IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3Rv
cmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9y
ZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1
ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVw
ZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5h
bF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2Fu
ZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9y
ZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNr
ZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIw
OSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9n
ZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAg
ICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxv
Y2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9y
X3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3Nl
cnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlv
bkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
c3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2
ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24g
d2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBz
dG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2Jq
ZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4g
bWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5h
bWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwg
aW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9
IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4
LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBj
dXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdf
Y3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwog
ICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRo
X3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dp
bmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2Yg
dGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZl
bnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYu
X2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNl
bGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1
ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5h
Z2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihz
ZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9h
bGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAg
ICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxl
ci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4
LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vy
c29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVf
Y29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5Iiwg
bGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNf
dmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlz
ZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpk
amFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0
b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVu
dAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9i
dWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxm
LmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAg
ICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVy
biBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xv
bmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNl
bGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9m
ZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0
cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5
IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24u
Y3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vy
c29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBz
ZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
dXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5
cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1
LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdh
cyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3Rv
cmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4
OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9l
bnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxm
Lm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdl
ci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2Vs
Zi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAg
c2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIu
ZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwg
aW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNv
ciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nv
bm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxp
bmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UK
ICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGph
bmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3Qg
Y2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9y
ZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQK
ICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVp
bGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5i
cmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAg
YnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4g
Z2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25l
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxm
Ll9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0
Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMg
PSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIs
IGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1
cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNv
cgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2Vs
Zi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0
aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBl
LCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwg
aW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRl
bnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9y
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNl
bGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZv
bGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lw
ZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmls
ZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9y
bWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xh
eWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGlu
IF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51
cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVf
YW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3Rh
dGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93
aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBp
biB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50
ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0
ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRf
c3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsn
dGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2Vs
Zi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmls
ZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0
aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9u
X2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFz
ayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAg
YXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3Nl
cnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xv
Z19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwg
aW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9n
X2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZp
ZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2Miwg
aW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmlu
dGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dp
bmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
MzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5m
b3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZl
bnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlv
bl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92
ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0
X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRl
X2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9z
dG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0
YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rh
c2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAg
IGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNz
ZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50
aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0
YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFz
awogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9m
cm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9y
ZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBz
ZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIs
IGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5p
bnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93
aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBp
biB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50
ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0
ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRf
c3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsn
dGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2Vs
Zi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmls
ZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0
aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9u
X2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFz
ayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAg
YXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3Nl
cnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xv
Z19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwg
aW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
dXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRl
X2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0
YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0
b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rh
c2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRh
J10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24g
d2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBp
biBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9y
ZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxh
eWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxm
aWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0
aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9i
dWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxm
LmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAg
ICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVy
biBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xv
bmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNl
bGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9m
ZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0
cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5
IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24u
Y3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vy
c29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBz
ZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
dXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5
cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1
LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQs
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBp
ZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJy
b3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4g
c2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBk
YXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFs
X3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRp
b24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFz
a2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9t
X3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9u
X2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVy
X3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9z
dG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90
YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0
YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
NzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2Vy
dCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9u
RXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIg
aW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRf
dGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAg
cmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rh
c2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVf
aW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9n
ZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAw
MSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVw
ZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5h
bF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2Fu
ZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9y
ZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNr
ZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIw
OSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9n
ZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAg
ICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxv
Y2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9y
X3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3Nl
cnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlv
bkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVy
IGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGlu
IHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRl
cm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRl
X2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9z
dG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0
YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxm
Ll9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxl
CiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRo
KGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25f
Zm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9l
bnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAg
ICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2Fy
Z3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0g
bGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9f
CiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1
LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAg
IHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21w
aWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25u
ZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIs
IGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJz
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNv
cgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRq
X2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBs
aW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQs
IGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0
ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9z
dGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9z
dG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90
YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0
YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwg
aW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRf
cmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBs
YXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2Fs
ZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3Bh
dGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQg
aWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVy
cm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGlu
IHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVw
ZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5h
bF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2Fu
ZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9y
ZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNr
ZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFz
c2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0
aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9z
dGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5m
b3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEs
IGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNp
b25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVy
IGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2Yg
dGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVk
X3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAg
IHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90
YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBl
X2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5f
Z2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEw
MDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1
cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJu
YWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9h
bmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3Rv
cmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFz
a2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQs
IGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5k
X3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3Jl
X3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tk
YXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNz
ZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRp
b25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmll
ciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRl
ZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAg
ICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21f
dGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lw
ZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYu
X2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4g
dXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVy
bmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVf
YW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0
b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rh
c2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYu
X2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUK
ICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgo
bG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9m
b3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIw
OSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9n
ZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAg
ICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxv
Y2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9y
X3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3Nl
cnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlv
bkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVy
IGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2Yg
dGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZl
bnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYu
X2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNl
bGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1
ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5h
Z2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihz
ZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9h
bGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAg
ICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxl
ci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4
LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vy
c29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVf
Y29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5Iiwg
bGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNf
dmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlz
ZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpk
amFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBp
biBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1
cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJu
YWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcs
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1h
dGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50
YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zy
b21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNp
b25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5
ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5k
X3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3Jl
X3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tk
YXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5
LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dl
dF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAg
IGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9j
YWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3Jf
cGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
NzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2Vy
dCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9u
RXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZl
bnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0
b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0
ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRf
c3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsn
dGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAg
ICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFz
c2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3Rv
cmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBl
X2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92
ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBh
dGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRp
ZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3Rh
cnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNr
CiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zy
b21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3Jl
Y2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNl
bGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9i
dWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dy
YXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5Iiwg
bGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9x
dWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9y
ZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRl
X3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVj
dXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2Vs
Zi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlv
bigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwg
aW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRy
YWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFp
c2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIu
dXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2Miwg
aW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmlu
dGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRh
dGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5k
X3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVb
J3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVf
dGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawog
ICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpB
c3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMg
dGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0
b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lw
ZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJf
dmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVw
YXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAg
ICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxk
CiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJi
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1
aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdl
dGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5f
ZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNo
X2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0g
Y29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBs
aW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJz
b3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IK
ICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYu
ZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGls
cy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwg
ZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGlu
IHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50
aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xv
Z19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAg
c2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAog
ICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWls
ZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRh
dHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2Zl
dGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9h
bGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNv
bXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGlu
ZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29y
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAg
ICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVu
c3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMu
cHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRq
X2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiBy
ZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9n
X2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBp
biBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51
cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVf
YW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3Rh
dGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3Rv
cmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFz
awogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEn
XQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGlu
IHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3Jl
Y2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5
ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZp
bGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRo
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlk
ZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJv
cgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBz
ZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRh
dGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxf
c3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlv
biA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNr
ZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21f
dGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25f
Zm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJf
dmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0
b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rh
c2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRh
J10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24g
d2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBp
biBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9y
ZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxh
eWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxm
aWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0
aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9i
dWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxm
LmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAg
ICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVy
biBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xv
bmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNl
bGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9m
ZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0
cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5
IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24u
Y3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vy
c29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBz
ZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
dXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5
cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1
LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQs
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBp
ZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJy
b3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4g
c2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBk
YXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFs
X3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRp
b24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFz
a2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9t
X3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9u
X2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVy
X3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9z
dG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90
YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0
YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
NzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2Vy
dCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9u
RXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIg
aW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRf
dGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAg
cmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rh
c2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVf
aW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9n
ZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAw
MSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVw
ZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5h
bF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2Fu
ZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9y
ZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNr
ZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIw
OSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9n
ZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAg
ICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxv
Y2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9y
X3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3Nl
cnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlv
bkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVy
IGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGlu
IHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRl
cm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1
NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9y
bWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50
LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25f
ZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVy
c2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9s
YXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9h
bmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3Rv
cmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFz
a2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNr
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBh
c3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2Vy
dGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlm
aWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIs
IGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5p
bnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93
aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2lu
Zm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2
ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRp
b25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJf
dmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dl
dF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0
ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRf
c3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsn
dGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1
ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVw
ZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5h
bF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2Fu
ZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9y
ZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNr
ZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIw
OSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9n
ZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAg
ICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxv
Y2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9y
X3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3Nl
cnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlv
bkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
c3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2
ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3
NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0
IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25F
cnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBp
biBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICBy
ZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFz
a2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9p
bmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dl
dF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAx
LCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBk
YXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFs
X3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5k
X3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3Jl
X3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tk
YXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNz
ZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRp
b25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0
YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZv
cm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwg
aW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lv
bl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIg
aW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4g
dXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVy
bmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVf
YW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0
b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rh
c2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYu
X2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUK
ICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgo
bG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9m
b3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFz
c2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0
aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZp
ZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2Miwg
aW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmlu
dGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dp
bmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
MzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5m
b3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZl
bnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlv
bl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92
ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0
X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRl
X2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9z
dG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0
YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rh
c2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAg
IGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNz
ZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50
aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0
YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFz
awogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9m
cm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9y
ZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBz
ZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIs
IGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5p
bnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93
aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2
ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZl
bnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0
b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
ODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4g
dXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVy
bmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVf
YW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0
b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rh
c2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYu
X2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUK
ICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgo
bG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9m
b3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFz
c2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0
aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZp
ZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0
ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawog
ICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9t
X3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNp
cGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxm
Ll9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGlu
IHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRl
cm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRl
X2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9z
dG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0
YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4
NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9h
bmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3Rv
cmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFz
a2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNr
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBh
c3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2Vy
dGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVf
c3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2lu
Zm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMx
LCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJz
aW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNl
bGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAg
IHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRy
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9t
YW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0
cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRj
aF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxs
CiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21w
aWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUg
ODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAg
Y3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1
cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5
IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9l
eGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVy
YWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19l
dmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
NzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2Vy
dCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9u
RXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIg
aW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRf
dGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAg
cmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rh
c2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVf
aW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9n
ZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAw
MSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVw
ZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5h
bF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2Fu
ZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9y
ZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNr
ZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIw
OSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9n
ZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAg
ICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxv
Y2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9y
X3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3Nl
cnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlv
bkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVy
IGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGlu
IHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRl
cm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRl
X2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9z
dG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0
YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxm
Ll9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxl
CiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRo
KGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25f
Zm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9l
bnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAg
ICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2Fy
Z3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0g
bGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9f
CiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1
LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAg
IHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21w
aWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25u
ZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIs
IGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJz
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNv
cgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRq
X2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBs
aW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNr
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBh
c3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2Vy
dGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlm
aWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIs
IGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5p
bnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93
aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2lu
Zm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2
ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRp
b25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJf
dmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dl
dF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0
ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRf
c3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsn
dGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAg
ICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFz
c2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVu
dGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
NjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2Vs
Zi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBl
X2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxl
KGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3Jt
YXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5
ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4g
X2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVw
ZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9h
bmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0
ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9y
ZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNr
CiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSdd
CkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdh
cyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4g
c3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVj
aXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXll
cl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmls
ZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgK
ICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVp
bGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5i
cmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAg
YnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4g
Z2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25l
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxm
Ll9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0
Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMg
PSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIs
IGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1
cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNv
cgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2Vs
Zi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0
aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBl
LCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwg
aW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRl
bnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9y
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNl
bGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0
ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9z
dGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9z
dG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90
YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0
YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwg
aW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRf
cmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBs
YXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2Fs
ZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3Bh
dGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQg
aWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVy
cm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0
IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3Rv
cmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9y
ZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1
ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQo
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVf
bG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0
LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRh
dGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxf
c3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRf
c3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVf
dGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2Rh
dGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDks
IGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0
X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAg
bGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2Nh
bGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9w
YXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3
NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0
IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25F
cnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBp
biBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1
cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJu
YWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcs
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1h
dGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50
YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zy
b21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNp
b25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5
ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5k
X3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3Jl
X3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tk
YXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNz
ZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRp
b25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmll
ciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRl
ZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAg
ICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21f
dGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lw
ZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYu
X2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4g
dXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVy
bmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQo
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVf
bG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0
LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBm
b2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1
cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9y
bV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5w
eSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5n
ZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2Vs
Zi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhl
Y3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4g
ZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9
IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5l
Y3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUg
OTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVl
LCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAg
IHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdv
LmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9s
b2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xv
Z19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwg
aW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9n
X2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2df
ZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGlu
IHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9i
dWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dy
YXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5Iiwg
bGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9x
dWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9y
ZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRl
X3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVj
dXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2Vs
Zi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlv
bigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwg
aW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRy
YWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFp
c2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIu
dXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19l
dmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
c3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2
ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24g
d2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBz
dG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2Jq
ZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4g
bWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5h
bWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwg
aW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9
IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4
LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBj
dXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdf
Y3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwog
ICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRo
X3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dp
bmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGlu
IHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRl
cm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRl
X2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9z
dG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0
YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4
NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcs
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1h
dGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50
YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zy
b21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNp
b25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5
ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0
ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9z
dGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9z
dG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90
YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0
YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwg
aW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRf
cmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBs
YXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2Fs
ZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3Bh
dGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQg
aWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVy
cm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0
IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3Rv
cmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlk
ZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJv
cgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVf
bG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFz
ayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAg
YXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3Nl
cnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRp
ZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3Rh
cnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNr
CiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zy
b21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3Jl
Y2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNl
bGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9i
dWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dy
YXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5Iiwg
bGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9x
dWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9y
ZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRl
X3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVj
dXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2Vs
Zi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlv
bigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwg
aW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRy
YWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFp
c2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIu
dXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19l
dmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
c3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2
ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24g
d2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBz
dG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9y
ZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNr
CiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSdd
CkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdh
cyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3Rv
cmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVf
dGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawog
ICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpB
c3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRl
bnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9y
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNh
dXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVf
c3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90
YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9u
X2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0
X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9
IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3Vy
ZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3Jt
X3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0g
QnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5
IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdl
dF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxm
Ll9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVj
dXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBl
eGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0g
c2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVj
dGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5
OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUs
IHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAg
cmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28u
ZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xv
Z19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAg
c2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAog
ICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWls
ZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRh
dHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2Zl
dGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9h
bGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNv
bXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGlu
ZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29y
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAg
ICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVu
c3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMu
cHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRq
X2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiBy
ZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9n
X2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBp
biBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9z
dG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90
YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0
YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4g
c3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBk
YXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2Fu
ZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRl
Wyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3Jl
X3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sK
ICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10K
QXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBz
dG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNp
cGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVy
X3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxl
cGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVf
bG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFz
ayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAg
YXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3Nl
cnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xv
Z19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwg
aW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9n
X2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2df
ZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGlu
IHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9i
dWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dy
YXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5Iiwg
bGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9x
dWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9y
ZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRl
X3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVj
dXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2Vs
Zi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlv
bigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwg
aW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRy
YWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFp
c2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIu
dXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19l
dmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
c3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2
ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3
NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0
IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25F
cnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBp
biBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1
cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJu
YWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9h
bmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3Rv
cmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFz
a2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
MDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5f
Z2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQog
ICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChs
b2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zv
cl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5
LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dl
dF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAg
IGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9j
YWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3Jf
cGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
NzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2Vy
dCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9u
RXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZl
bnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQg
aWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVy
cm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0
IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3Rv
cmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9y
ZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1
ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQo
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVf
bG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0
LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBm
b2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1
cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9y
bV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5w
eSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5n
ZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2Vs
Zi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhl
Y3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4g
ZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9
IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5l
Y3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUg
OTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVl
LCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAg
IHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdv
LmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
NjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2Vs
Zi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
dXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRl
X2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0
YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24g
PSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2Zp
bGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rh
c2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zv
cl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3Zl
cnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2Jq
ZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4g
bWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5h
bWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwg
aW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9
IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4
LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBj
dXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdf
Y3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwog
ICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRo
X3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dp
bmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGlu
IHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRl
cm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRl
X2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9z
dG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0
YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rh
c2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAg
IGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNz
ZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50
aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0
YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFz
awogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9m
cm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9y
ZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBz
ZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIs
IGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5p
bnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93
aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2lu
Zm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2
ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRp
b25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJf
dmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dl
dF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0
ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRf
c3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsn
dGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAg
ICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFz
c2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVu
dGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9z
dGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rh
c2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25f
ZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRf
cmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0g
c2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYy
LCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYu
aW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9i
dWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dy
YXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5Iiwg
bGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9x
dWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9y
ZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRl
X3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVj
dXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2Vs
Zi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlv
bigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwg
aW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRy
YWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFp
c2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIu
dXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19l
dmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVy
IGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2Yg
dGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZl
bnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYu
X2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNl
bGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1
ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5h
Z2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihz
ZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9h
bGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAg
ICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxl
ci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4
LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vy
c29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVf
Y29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5Iiwg
bGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNf
dmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlz
ZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpk
amFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0
b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVu
dAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9i
dWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxm
LmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAg
ICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVy
biBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xv
bmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNl
bGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9m
ZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0
cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5
IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24u
Y3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vy
c29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBz
ZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
dXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5
cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1
LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdh
cyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3Rv
cmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVf
dGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawog
ICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpB
c3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRl
bnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9y
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNh
dXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVf
c3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90
YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9u
X2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0
X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9
IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3Vy
ZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3Jt
X3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0g
QnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5
IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdl
dF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxm
Ll9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVj
dXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBl
eGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0g
c2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVj
dGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5
OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUs
IHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAg
cmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28u
ZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xv
Z19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAg
c2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAog
ICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWls
ZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRh
dHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2Zl
dGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9h
bGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNv
bXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGlu
ZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29y
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAg
ICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVu
c3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMu
cHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRq
X2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiBy
ZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9n
X2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNz
ZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRp
b25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19l
dmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4g
c3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93
aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2
ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZl
bnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0
b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
ODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVu
dChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0
IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3Rv
cmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9y
ZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1
ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVw
ZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5h
bF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2Fu
ZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9y
ZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNr
ZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIw
OSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9n
ZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAg
ICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxv
Y2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9y
X3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGlu
IHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0
b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rh
c2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRh
J10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3
NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0
IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25F
cnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0
b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVu
dAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9i
dWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxm
LmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAg
ICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVy
biBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xv
bmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNl
bGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9m
ZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0
cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5
IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24u
Y3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vy
c29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBz
ZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
dXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5
cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1
LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdh
cyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3Rv
cmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVf
dGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawog
ICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpB
c3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRl
bnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9y
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNh
dXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVf
c3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90
YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9u
X2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0
X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9
IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3Vy
ZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3Jt
X3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0g
QnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5
IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdl
dF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxm
Ll9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVj
dXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBl
eGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0g
c2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVj
dGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5
OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUs
IHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAg
cmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28u
ZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2
MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxm
LmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVf
aW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUo
ZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1h
dGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXll
cl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBf
Z2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBk
YXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2Fu
ZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRl
Wyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3Jl
X3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sK
ICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10K
QXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBz
dG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNp
cGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVy
X3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxl
cGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVu
dGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
NjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2Vs
Zi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9n
X2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2df
ZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGlu
IHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0
b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rh
c2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRh
J10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2
MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0
IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25F
cnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0
b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0
ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1h
dGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4g
X2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9v
YmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9l
bnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxm
Lm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdl
ci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2Vs
Zi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAg
c2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIu
ZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwg
aW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNv
ciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nv
bm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxp
bmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UK
ICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGph
bmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4g
c2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBk
YXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFs
X3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRp
b24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFz
a2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9t
X3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9u
X2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVy
X3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9z
dG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90
YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0
YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4g
c3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93
aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBp
biB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50
ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
ODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVu
dChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0
IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3Rv
cmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlk
ZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJv
cgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVu
dGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9z
dGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rh
c2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25f
ZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRf
cmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0g
c2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9n
X2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZp
ZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2Miwg
aW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmlu
dGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dp
bmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
MzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5m
b3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZl
bnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlv
bl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92
ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0
X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRl
X2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9z
dG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0
YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4
NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODks
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5z
dXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5v
cm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3Qg
PSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIu
cHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYu
Z2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNl
bGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4
ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGlu
IGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3Ig
PSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25u
ZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5l
IDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1
ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAg
ICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5n
by5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNh
dXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVf
bG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAg
ICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxk
CiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJi
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1
aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdl
dGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5f
ZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNo
X2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0g
Y29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBs
aW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJz
b3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IK
ICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYu
ZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGls
cy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwg
ZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGlu
IHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRo
ZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9s
b2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9l
bnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAg
ICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2Fy
Z3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0g
bGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9f
CiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1
LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAg
IHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21w
aWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25u
ZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIs
IGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJz
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNv
cgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRq
X2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBs
aW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQs
IGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0
ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9z
dGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9z
dG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90
YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0
YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwg
aW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRf
cmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBs
YXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2Fs
ZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3Bh
dGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQg
aWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVy
cm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0
IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3Rv
cmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9y
ZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1
ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVf
YW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0
b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rh
c2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0
LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRh
dGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxf
c3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYy
LCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYu
aW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9p
bmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShl
dmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0
aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVy
X3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9n
ZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2Jq
ZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4g
bWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5h
bWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwg
aW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9
IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4
LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBj
dXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdf
Y3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwog
ICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRo
X3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dp
bmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGlu
IHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRl
cm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRl
X2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9z
dG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0
YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxm
Ll9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxl
CiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRo
KGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25f
Zm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9l
bnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAg
ICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2Fy
Z3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0g
bGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9f
CiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1
LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAg
IHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21w
aWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25u
ZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIs
IGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJz
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNv
cgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRq
X2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBs
aW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQs
IGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0
ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9z
dGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2df
ZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNl
bGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAg
IHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRy
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9t
YW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0
cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRj
aF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxs
CiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21w
aWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUg
ODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAg
Y3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1
cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5
IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9l
eGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVy
YWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmll
ciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2
ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZl
bnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0
b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
ODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4g
dXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVy
bmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVf
YW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0
b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rh
c2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYu
X2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUK
ICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgo
bG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9m
b3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFz
c2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0
aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2df
ZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGlu
IHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9i
dWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dy
YXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5Iiwg
bGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9x
dWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9y
ZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRl
X3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVj
dXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2Vs
Zi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlv
bigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwg
aW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRy
YWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFp
c2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIu
dXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19l
dmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
c3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2
ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3
NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0
IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25F
cnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0
b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVu
dAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9i
dWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxm
LmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAg
ICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVy
biBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xv
bmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNl
bGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9m
ZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0
cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5
IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24u
Y3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vy
c29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBz
ZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
dXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5
cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1
LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEs
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBp
ZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJy
b3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3Qg
Y2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9y
ZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVk
X3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRp
b25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9n
ZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2Jq
ID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5z
dXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5v
cm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3Qg
PSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIu
cHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYu
Z2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNl
bGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4
ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGlu
IGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3Ig
PSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25u
ZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5l
IDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1
ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAg
ICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5n
by5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNl
bGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0
ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9z
dGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9u
ID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tm
aWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90
YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9m
b3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92
ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3Rv
cmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFz
awogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEn
XQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0
b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0
ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRf
c3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsn
dGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1
ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQo
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVf
bG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFz
ayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAg
YXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3Nl
cnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRp
ZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9n
X2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZp
ZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2Miwg
aW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmlu
dGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dp
bmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
MzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5m
b3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZl
bnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlv
bl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92
ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0
X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRl
X2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9z
dG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0
YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxm
Ll9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxl
CiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRo
KGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25f
Zm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9l
bnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAg
ICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2Fy
Z3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0g
bGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9f
CiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1
LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAg
IHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21w
aWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25u
ZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIs
IGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJz
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNv
cgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRq
X2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBs
aW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQs
IGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0
ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9z
dGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51
cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVf
YW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3Rh
dGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93
aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2
ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZl
bnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0
b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0
ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRf
c3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsn
dGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAg
ICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFz
c2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3Rv
cmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBl
X2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92
ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBh
dGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRp
ZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYy
LCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYu
aW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVw
ZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9h
bmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0
ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9y
ZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNr
CiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSdd
CkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEs
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBp
ZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJy
b3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4g
c2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFz
ayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVj
aXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tm
aWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5m
b3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRf
bGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwg
aW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZv
bGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lw
ZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmls
ZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9y
bWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xh
eWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGlu
IF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVf
aW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUo
ZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1h
dGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXll
cl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBf
Z2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBk
YXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2Fu
ZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRl
Wyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
ODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4g
dXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVy
bmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVw
ZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5h
bF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBm
b2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1
cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9y
bV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5w
eSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5n
ZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2Vs
Zi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhl
Y3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4g
ZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9
IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5l
Y3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUg
OTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVl
LCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAg
IHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdv
LmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9s
b2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xv
Z19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwg
aW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
dXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRl
X2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0
YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9i
dWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dy
YXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5Iiwg
bGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9x
dWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9y
ZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRl
X3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVj
dXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2Vs
Zi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlv
bigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwg
aW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRy
YWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFp
c2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIu
dXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19l
dmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
c3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2
ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24g
d2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBz
dG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9y
ZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNr
CiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSdd
CkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQs
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBp
ZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJy
b3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4g
c2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBk
YXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFs
X3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRp
b24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFz
a2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9t
X3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9u
X2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVy
X3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9z
dG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90
YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0
YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwg
aW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRf
cmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBs
YXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2Fs
ZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3Bh
dGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYx
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQg
aWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVy
cm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGlu
IHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVw
ZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5h
bF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1Nywg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0
aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRh
c2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJv
bV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lv
bl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXll
cl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlv
biA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNr
ZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21f
dGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25f
Zm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJf
dmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0
b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rh
c2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRh
J10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24g
d2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBz
dG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9y
ZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNr
CiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSdd
CkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQs
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBp
ZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJy
b3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3Qg
Y2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9y
ZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQK
ICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVp
bGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5i
cmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAg
YnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4g
Z2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25l
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxm
Ll9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0
Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMg
PSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIs
IGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1
cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNv
cgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2Vs
Zi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0
aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBl
LCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwg
aW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRl
bnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9y
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNh
dXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVf
bG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAg
ICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxk
CiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJi
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1
aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdl
dGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5f
ZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNo
X2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0g
Y29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBs
aW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJz
b3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IK
ICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYu
ZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGls
cy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwg
ZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGlu
IHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRo
ZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9s
b2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9l
bnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAg
ICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2Fy
Z3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0g
bGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9f
CiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1
LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAg
IHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21w
aWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25u
ZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIs
IGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJz
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNv
cgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRq
X2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBs
aW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQs
IGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZv
bGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3Vy
ZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3Jt
X3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0g
QnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5
IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdl
dF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxm
Ll9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVj
dXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBl
eGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0g
c2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVj
dGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5
OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUs
IHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAg
cmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28u
ZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xv
Z19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAg
c2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAog
ICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWls
ZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRh
dHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2Zl
dGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9h
bGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNv
bXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGlu
ZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29y
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAg
ICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVu
c3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMu
cHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRq
X2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiBy
ZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9n
X2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBp
biBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2df
ZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNl
bGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAg
IHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRy
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9t
YW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0
cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRj
aF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxs
CiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21w
aWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUg
ODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAg
Y3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1
cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5
IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9l
eGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVy
YWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19l
dmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4g
c3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBk
YXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2Fu
ZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRl
Wyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3Jl
X3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sK
ICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10K
QXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBz
dG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNp
cGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVy
X3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxl
cGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVu
dGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9s
b2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xv
Z19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwg
aW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRf
c3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVf
dGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2Rh
dGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3Nl
cnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlv
bkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVy
IGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGlu
IHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRl
cm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1
NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9y
bWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50
LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25f
ZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVy
c2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9s
YXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcs
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1h
dGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50
YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zy
b21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNp
b25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5
ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5k
X3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3Jl
X3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tk
YXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNz
ZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRp
b25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0
YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZv
cm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwg
aW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lv
bl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIg
aW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVu
dChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0
IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3Rv
cmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlk
ZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJv
cgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVf
bG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFz
ayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAg
YXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3Nl
cnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xv
Z19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwg
aW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9n
X2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2df
ZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3Nl
cnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlv
bkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVy
IGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2Yg
dGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVk
X3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAg
IHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90
YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBl
X2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5f
Z2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEw
MDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1
cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJu
YWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODks
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5z
dXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5v
cm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3Qg
PSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIu
cHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYu
Z2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNl
bGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4
ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGlu
IGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3Ig
PSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25u
ZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5l
IDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1
ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAg
ICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5n
by5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNh
dXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVf
bG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAg
ICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxk
CiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJi
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1
aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdl
dGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5f
ZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNo
X2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0g
Y29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBs
aW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJz
b3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IK
ICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYu
ZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGls
cy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwg
ZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGlu
IHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRo
ZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9s
b2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9l
bnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAg
ICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2Fy
Z3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0g
bGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9f
CiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1
LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAg
IHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21w
aWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25u
ZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIs
IGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJz
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNv
cgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRq
X2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBs
aW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQs
IGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0
ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9z
dGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9z
dG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90
YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0
YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwg
aW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRf
cmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBs
YXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2Fs
ZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3Bh
dGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQg
aWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVy
cm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGlu
IHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVw
ZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5h
bF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2Fu
ZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9y
ZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNr
ZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFz
c2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0
aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZp
ZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0
ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawog
ICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9t
X3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNp
cGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxm
Ll9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2Yg
dGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVk
X3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAg
IHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90
YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBl
X2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5f
Z2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEw
MDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICBy
ZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFz
a2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9p
bmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dl
dF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAx
LCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBk
YXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFs
X3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5k
X3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3Jl
X3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tk
YXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNz
ZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRp
b25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmll
ciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2
ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZl
bnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0
b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
ODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVu
dChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0
IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3Rv
cmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9y
ZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1
ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQo
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVf
bG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFz
ayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAg
YXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3Nl
cnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRp
ZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3Rh
cnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNr
CiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zy
b21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3Jl
Y2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNl
bGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9i
dWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dy
YXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5Iiwg
bGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9x
dWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9y
ZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRl
X3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVj
dXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2Vs
Zi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlv
bigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwg
aW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRy
YWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFp
c2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIu
dXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2Miwg
aW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmlu
dGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRh
dGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5k
X3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVb
J3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNl
bGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2Zp
bGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3Bh
dGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lv
bl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rh
c2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAg
IGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNz
ZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50
aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2
MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxm
LmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVf
aW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUo
ZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1h
dGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXll
cl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBf
Z2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93
aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2
ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZl
bnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYx
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQg
aWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVy
cm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0
IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3Rv
cmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRl
ZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0
aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBf
Z2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29i
aiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVf
bG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0
LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBm
b2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1
cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9y
bV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5w
eSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5n
ZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2Vs
Zi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhl
Y3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4g
ZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9
IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5l
Y3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUg
OTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVl
LCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAg
IHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdv
LmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
NjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2Vs
Zi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
dXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRl
X2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0
YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24g
PSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2Zp
bGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rh
c2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zv
cl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3Zl
cnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9y
ZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNr
CiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSdd
CkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQs
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBp
ZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJy
b3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3Qg
Y2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9y
ZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQK
ICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVp
bGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5i
cmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAg
YnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4g
Z2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25l
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxm
Ll9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0
Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMg
PSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIs
IGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1
cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNv
cgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2Vs
Zi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0
aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBl
LCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwg
aW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMg
dGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3Jl
X2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rh
c2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAg
IGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNz
ZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRo
ZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9s
b2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9l
bnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAg
ICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2Fy
Z3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0g
bGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9f
CiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1
LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAg
IHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21w
aWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25u
ZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIs
IGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJz
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNv
cgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRq
X2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBs
aW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNr
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBh
c3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2Vy
dGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9n
X2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBp
biBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2df
ZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNl
bGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAg
IHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRy
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9t
YW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0
cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRj
aF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxs
CiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21w
aWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUg
ODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAg
Y3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1
cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5
IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9l
eGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVy
YWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19l
dmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4g
c3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93
aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBp
biB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50
ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0
ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRf
c3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsn
dGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2Vs
Zi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmls
ZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0
aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9u
X2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFz
ayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAg
YXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3Nl
cnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xv
Z19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwg
aW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRf
c3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVf
dGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2Rh
dGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3Nl
cnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlv
bkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVy
IGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGlu
IHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRl
cm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1
NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9y
bWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50
LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25f
ZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVy
c2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9s
YXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcs
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1h
dGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50
YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zy
b21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNp
b25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5
ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5k
X3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3Jl
X3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tk
YXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNz
ZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRp
b25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0
YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZv
cm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwg
aW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lv
bl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZl
bnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQg
aWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVy
cm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0
IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3Rv
cmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9y
ZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1
ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQo
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBz
ZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRh
dGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxf
c3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYy
LCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYu
aW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9i
dWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dy
YXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5Iiwg
bGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9x
dWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9y
ZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRl
X3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVj
dXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2Vs
Zi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlv
bigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwg
aW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRy
YWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFp
c2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIu
dXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19l
dmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVy
IGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2Yg
dGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZl
bnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYu
X2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNl
bGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1
ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5h
Z2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihz
ZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9h
bGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAg
ICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxl
ci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4
LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vy
c29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVf
Y29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5Iiwg
bGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNf
dmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlz
ZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpk
amFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0
b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVu
dAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9i
dWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxm
LmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAg
ICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVy
biBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xv
bmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNl
bGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9m
ZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0
cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5
IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24u
Y3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vy
c29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBz
ZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
dXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5
cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1
LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEs
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBp
ZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJy
b3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3Qg
Y2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9y
ZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVk
X3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRp
b25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9n
ZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2Jq
ID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5z
dXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5v
cm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3Qg
PSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIu
cHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYu
Z2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNl
bGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4
ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGlu
IGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3Ig
PSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25u
ZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5l
IDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1
ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAg
ICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5n
by5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNh
dXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVf
bG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAg
ICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxk
CiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJi
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1
aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdl
dGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5f
ZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNo
X2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0g
Y29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBs
aW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJz
b3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IK
ICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYu
ZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGls
cy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwg
ZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGlu
IHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRo
ZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9s
b2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9l
bnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAg
ICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2Fy
Z3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0g
bGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9f
CiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1
LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAg
IHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21w
aWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25u
ZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIs
IGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJz
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNv
cgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRq
X2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBs
aW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQs
IGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0
ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9z
dGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9z
dG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90
YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0
YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwg
aW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRf
cmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBs
YXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2Fs
ZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3Bh
dGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQg
aWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVy
cm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0
IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3Rv
cmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9y
ZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1
ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVf
YW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0
b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rh
c2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0
LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBm
b2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1
cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9y
bV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5w
eSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5n
ZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2Vs
Zi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhl
Y3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4g
ZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9
IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5l
Y3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUg
OTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVl
LCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAg
IHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdv
LmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9s
b2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xv
Z19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwg
aW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9n
X2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZp
ZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2Miwg
aW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmlu
dGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRh
dGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5k
X3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVb
J3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNl
bGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2Zp
bGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3Bh
dGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lv
bl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rh
c2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAg
IGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNz
ZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50
aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2
MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxm
LmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51
cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVf
YW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3Rh
dGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3Rv
cmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFz
awogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEn
XQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGlu
IHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3Jl
Y2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5
ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZp
bGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRo
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBz
dG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNp
cGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVy
X3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxl
cGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3Rv
cmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBl
X2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92
ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBh
dGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRp
ZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYy
LCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYu
aW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9p
bmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShl
dmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0
aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVy
X3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9n
ZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2Jq
ZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4g
bWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5h
bWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwg
aW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9
IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4
LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBj
dXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdf
Y3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwog
ICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRo
X3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRh
dGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5k
X3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVb
J3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4
OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1
cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJu
YWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9h
bmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3Rv
cmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFz
a2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQs
IGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZv
bGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3Vy
ZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3Jt
X3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0g
QnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5
IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdl
dF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxm
Ll9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVj
dXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBl
eGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0g
c2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVj
dGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5
OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUs
IHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAg
cmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28u
ZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2
MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxm
LmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIs
IGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5p
bnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93
aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2
ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZl
bnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0
b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
ODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVu
dChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0
IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3Rv
cmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9y
ZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1
ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQo
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBz
ZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRh
dGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxf
c3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlv
biA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNr
ZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21f
dGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25f
Zm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJf
dmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0
b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rh
c2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRh
J10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3
NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0
IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25F
cnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBp
biBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICBy
ZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFz
a2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9p
bmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dl
dF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAx
LCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBk
YXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFs
X3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5k
X3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3Jl
X3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tk
YXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNz
ZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRp
b25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmll
ciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBp
biB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50
ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAz
NTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZv
cm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVu
dC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9u
X2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3Zl
cnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRf
bGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3Jt
YXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQu
dGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9m
cm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJz
aW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xh
eWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1Nywg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0
aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRh
c2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJv
bV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lv
bl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXll
cl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRf
c3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVf
dGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2Rh
dGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3Nl
cnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlv
bkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
c3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2
ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24g
d2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBz
dG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9y
ZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNr
CiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSdd
CkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdh
cyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3Rv
cmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4
OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9l
bnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxm
Lm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdl
ci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2Vs
Zi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAg
c2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIu
ZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwg
aW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNv
ciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nv
bm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxp
bmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UK
ICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGph
bmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3Qg
Y2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9y
ZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQK
ICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVp
bGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5i
cmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAg
YnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4g
Z2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25l
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxm
Ll9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0
Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMg
PSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIs
IGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1
cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNv
cgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2Vs
Zi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0
aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBl
LCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwg
aW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMg
dGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3Jl
X2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rh
c2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAg
IGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNz
ZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRo
ZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9s
b2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9l
bnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAg
ICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2Fy
Z3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0g
bGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9f
CiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1
LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAg
IHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21w
aWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25u
ZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIs
IGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJz
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNv
cgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRq
X2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBs
aW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQs
IGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZv
bGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3Vy
ZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3Jt
X3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0g
QnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5
IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdl
dF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxm
Ll9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVj
dXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBl
eGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0g
c2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVj
dGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5
OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUs
IHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAg
cmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28u
ZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xv
Z19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAg
c2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAog
ICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWls
ZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRh
dHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2Zl
dGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9h
bGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNv
bXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGlu
ZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29y
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAg
ICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVu
c3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMu
cHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRq
X2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiBy
ZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9n
X2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNz
ZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRp
b25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19l
dmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4g
c3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93
aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2
ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZl
bnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0
b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0
ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRf
c3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsn
dGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAg
ICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFz
c2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVu
dGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9z
dGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rh
c2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25f
ZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRf
cmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0g
c2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYy
LCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYu
aW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVw
ZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9h
bmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0
ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9y
ZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNr
CiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSdd
CkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEs
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBp
ZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJy
b3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4g
c2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBk
YXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFs
X3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5k
X3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3Jl
X3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tk
YXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5
LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dl
dF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAg
IGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9j
YWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3Jf
cGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwg
aW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRf
cmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBs
YXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2Fs
ZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3Bh
dGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGlu
IHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3Jl
Y2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5
ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZp
bGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRo
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBz
dG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNp
cGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVy
X3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxl
cGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVu
dGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9s
b2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRp
ZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9n
X2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2df
ZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGlu
IHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0
b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rh
c2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRh
J10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24g
d2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBz
dG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9y
ZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNr
CiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSdd
CkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdh
cyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3Rv
cmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRl
X2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9z
dG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0
YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4
NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODks
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5z
dXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5v
cm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3Qg
PSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIu
cHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYu
Z2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNl
bGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4
ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGlu
IGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3Ig
PSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25u
ZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5l
IDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1
ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAg
ICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5n
by5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNh
dXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVf
bG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAg
ICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxk
CiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJi
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1
aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdl
dGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5f
ZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNo
X2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0g
Y29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBs
aW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJz
b3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IK
ICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYu
ZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGls
cy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwg
ZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGlu
IHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRo
ZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9s
b2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9l
bnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAg
ICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2Fy
Z3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0g
bGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9f
CiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1
LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAg
IHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21w
aWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25u
ZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIs
IGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJz
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNv
cgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRq
X2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBs
aW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQs
IGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZv
bGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3Vy
ZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3Jt
X3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0g
QnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5
IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdl
dF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxm
Ll9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVj
dXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBl
eGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0g
c2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVj
dGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5
OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUs
IHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAg
cmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28u
ZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2
MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxm
LmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51
cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVf
YW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3Rh
dGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3Rv
cmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFz
awogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEn
XQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYx
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQg
aWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVy
cm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGlu
IHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rh
c2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJl
Y2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNr
ZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2lu
Zm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0
X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEs
IGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBm
b2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNr
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNp
cGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2Zp
bGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZv
cm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9s
YXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBp
biBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
dXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRl
X2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0
YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24g
PSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2Zp
bGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rh
c2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zv
cl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3Zl
cnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9y
ZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNr
CiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSdd
CkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEs
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBp
ZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJy
b3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3Qg
Y2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9y
ZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVk
X3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRp
b25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9n
ZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2Jq
ID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5z
dXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5v
cm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3Qg
PSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIu
cHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYu
Z2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNl
bGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4
ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGlu
IGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3Ig
PSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25u
ZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5l
IDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1
ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAg
ICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5n
by5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNl
bGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0
ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9z
dGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9u
ID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tm
aWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90
YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9m
b3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92
ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3Rv
cmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFz
awogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEn
XQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0
b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3Jl
X3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sK
ICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10K
QXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlk
ZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJv
cgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVf
bG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFz
ayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAg
YXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3Nl
cnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xv
Z19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwg
aW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9n
X2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2df
ZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGlu
IHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9i
dWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dy
YXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5Iiwg
bGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9x
dWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9y
ZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRl
X3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVj
dXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2Vs
Zi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlv
bigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwg
aW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRy
YWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFp
c2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIu
dXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19l
dmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
c3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2
ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24g
d2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBz
dG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2Jq
ZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4g
bWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5h
bWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwg
aW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9
IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4
LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBj
dXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdf
Y3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwog
ICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRo
X3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dp
bmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2Yg
dGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZl
bnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYu
X2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNl
bGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1
ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5h
Z2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihz
ZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9h
bGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAg
ICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxl
ci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4
LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vy
c29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVf
Y29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5Iiwg
bGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNf
dmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlz
ZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpk
amFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0
b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVu
dAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9i
dWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxm
LmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAg
ICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVy
biBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xv
bmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNl
bGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9m
ZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0
cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5
IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24u
Y3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vy
c29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBz
ZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
dXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5
cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1
LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdh
cyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3Rv
cmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4
OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1
cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJu
YWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODks
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5z
dXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5v
cm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3Qg
PSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIu
cHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYu
Z2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNl
bGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4
ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGlu
IGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3Ig
PSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25u
ZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5l
IDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1
ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAg
ICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5n
by5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNh
dXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVf
bG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAg
ICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxk
CiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJi
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1
aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdl
dGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5f
ZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNo
X2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0g
Y29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBs
aW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJz
b3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IK
ICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYu
ZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGls
cy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwg
ZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGlu
IHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50
aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2
MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxm
LmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVf
aW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUo
ZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1h
dGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXll
cl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBf
Z2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBk
YXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2Fu
ZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRl
Wyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3Jl
X3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sK
ICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10K
QXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBz
dG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNp
cGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVy
X3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxl
cGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVu
dGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
NjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2Vs
Zi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
dXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRl
X2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0
YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0
b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rh
c2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRh
J10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2
MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0
IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25F
cnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBp
biBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICBy
ZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFz
a2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9p
bmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dl
dF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAx
LCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFz
ayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVj
aXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tm
aWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5m
b3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRf
bGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwg
aW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZv
bGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lw
ZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmls
ZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9y
bWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xh
eWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGlu
IF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51
cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVf
YW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3Rh
dGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBk
YXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2Fu
ZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRl
Wyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
ODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVu
dChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGlu
IHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQo
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBz
ZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRh
dGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxf
c3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9n
X2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2df
ZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGlu
IHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9i
dWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dy
YXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5Iiwg
bGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9x
dWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9y
ZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRl
X3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVj
dXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2Vs
Zi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlv
bigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwg
aW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRy
YWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFp
c2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIu
dXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19l
dmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
c3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2
ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3
NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0
IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25F
cnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBp
biBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICBy
ZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFz
a2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9p
bmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dl
dF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAx
LCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5z
dXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5v
cm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3Qg
PSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIu
cHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYu
Z2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNl
bGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4
ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGlu
IGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3Ig
PSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25u
ZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5l
IDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1
ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAg
ICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5n
by5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNh
dXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVf
bG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAg
ICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxk
CiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJi
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1
aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdl
dGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5f
ZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNo
X2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0g
Y29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBs
aW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJz
b3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IK
ICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYu
ZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGls
cy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwg
ZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGlu
IHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50
aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xv
Z19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAg
c2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAog
ICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWls
ZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRh
dHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2Zl
dGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9h
bGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNv
bXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGlu
ZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29y
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAg
ICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVu
c3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMu
cHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRq
X2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiBy
ZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9n
X2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBp
biBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9z
dG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90
YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0
YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAz
NjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2Vy
dCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9u
RXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFy
dGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3Jt
YXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGlu
IF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25f
b2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGlu
IHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVw
ZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5h
bF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2Fu
ZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9y
ZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNr
ZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFz
c2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0
aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZp
ZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2Miwg
aW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmlu
dGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dp
bmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
MzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5m
b3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZl
bnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlv
bl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92
ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0
X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1
NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9y
bWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50
LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25f
ZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVy
c2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9s
YXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9h
bmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3Rv
cmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFz
a2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
MDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5f
Z2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQog
ICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChs
b2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zv
cl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNz
ZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRp
b25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0
YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZv
cm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwg
aW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lv
bl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIg
aW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4g
dXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVy
bmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVw
ZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5h
bF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBm
b2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1
cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9y
bV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5w
eSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5n
ZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2Vs
Zi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhl
Y3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4g
ZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9
IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5l
Y3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUg
OTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVl
LCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAg
IHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdv
LmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9s
b2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xv
Z19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwg
aW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9n
X2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZp
ZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19l
dmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
c3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2
ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24g
d2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBz
dG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2Jq
ZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4g
bWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5h
bWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwg
aW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9
IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4
LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBj
dXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdf
Y3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwog
ICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRo
X3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dp
bmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2Yg
dGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZl
bnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYu
X2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNl
bGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1
ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5h
Z2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihz
ZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9h
bGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAg
ICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxl
ci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4
LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vy
c29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVf
Y29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5Iiwg
bGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNf
dmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlz
ZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpk
amFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBp
biBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9l
bnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxm
Lm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdl
ci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2Vs
Zi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAg
c2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIu
ZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwg
aW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNv
ciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nv
bm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxp
bmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UK
ICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGph
bmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3Qg
Y2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9y
ZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQK
ICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVp
bGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5i
cmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAg
YnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4g
Z2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25l
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxm
Ll9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0
Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMg
PSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIs
IGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1
cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNv
cgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2Vs
Zi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0
aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBl
LCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwg
aW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMg
dGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3Jl
X2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4
NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODks
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5z
dXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5v
cm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3Qg
PSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIu
cHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYu
Z2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNl
bGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4
ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGlu
IGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3Ig
PSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25u
ZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5l
IDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1
ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAg
ICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5n
by5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNl
bGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0
ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9z
dGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9z
dG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90
YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0
YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
NzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2Vy
dCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9u
RXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIg
aW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4g
dXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVy
bmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVf
YW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0
b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rh
c2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFz
ayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAg
YXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3Nl
cnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3Jl
X3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9p
bmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAz
MSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVy
c2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZp
ZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2Miwg
aW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmlu
dGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dp
bmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
MzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5m
b3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZl
bnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlv
bl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92
ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0
X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1
NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9y
bWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50
LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25f
ZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVy
c2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9s
YXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcs
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1h
dGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50
YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zy
b21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNp
b25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5
ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRp
b24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFz
a2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9t
X3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9u
X2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVy
X3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9z
dG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90
YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0
YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4g
c3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3Rv
cmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFz
awogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEn
XQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0
b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0
ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRf
c3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsn
dGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAg
ICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFz
c2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVf
bG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0
LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBm
b2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1
cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9y
bV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5w
eSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5n
ZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2Vs
Zi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhl
Y3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4g
ZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9
IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5l
Y3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUg
OTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVl
LCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAg
IHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdv
LmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9s
b2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xv
Z19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwg
aW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRf
c3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVf
dGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2Rh
dGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGlu
IHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9i
dWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dy
YXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5Iiwg
bGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9x
dWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9y
ZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRl
X3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVj
dXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2Vs
Zi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlv
bigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwg
aW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRy
YWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFp
c2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIu
dXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19l
dmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
c3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2
ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24g
d2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBz
dG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9y
ZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNr
CiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSdd
CkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQs
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBp
ZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJy
b3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4g
c2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBk
YXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFs
X3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRp
b24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFz
a2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9t
X3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9u
X2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVy
X3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9u
ID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tm
aWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90
YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9m
b3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92
ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3Rv
cmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFz
awogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEn
XQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQg
aWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVy
cm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGlu
IHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVw
ZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5h
bF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2Fu
ZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9y
ZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNr
ZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFz
c2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0
aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9z
dGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5m
b3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEs
IGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNp
b25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
c3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3Rh
cnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9y
bWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBp
biBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9u
X29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYu
X2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNl
bGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1
ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5h
Z2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihz
ZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9h
bGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAg
ICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxl
ci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4
LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vy
c29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVf
Y29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5Iiwg
bGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNf
dmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlz
ZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpk
amFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0
b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0
ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1h
dGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4g
X2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9v
YmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9l
bnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxm
Lm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdl
ci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2Vs
Zi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAg
c2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIu
ZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwg
aW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNv
ciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nv
bm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxp
bmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UK
ICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGph
bmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4g
c2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5z
dXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5v
cm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3Qg
PSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIu
cHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYu
Z2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNl
bGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4
ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGlu
IGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3Ig
PSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25u
ZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5l
IDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1
ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAg
ICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5n
by5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNh
dXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVf
bG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAg
ICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxk
CiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJi
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1
aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdl
dGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5f
ZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNo
X2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0g
Y29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBs
aW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJz
b3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IK
ICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYu
ZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGls
cy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwg
ZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGlu
IHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50
aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xv
Z19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAg
c2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAog
ICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWls
ZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRh
dHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2Zl
dGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9h
bGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNv
bXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGlu
ZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29y
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAg
ICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVu
c3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMu
cHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRq
X2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiBy
ZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9n
X2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBp
biBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9z
dG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90
YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0
YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
NzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2Vy
dCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9u
RXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZl
bnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0
b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3Jl
X3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sK
ICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10K
QXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9y
ZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1
ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQo
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVf
bG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0
LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBm
b2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1
cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9y
bV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5w
eSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5n
ZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2Vs
Zi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhl
Y3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4g
ZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9
IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5l
Y3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUg
OTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVl
LCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAg
IHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdv
LmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9s
b2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRp
ZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYy
LCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYu
aW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9p
bmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShl
dmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0
aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVy
X3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9n
ZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2Jq
ZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4g
bWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5h
bWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwg
aW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9
IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4
LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBj
dXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdf
Y3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwog
ICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRo
X3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dp
bmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2Yg
dGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZl
bnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYu
X2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNl
bGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1
ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5h
Z2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihz
ZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9h
bGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAg
ICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxl
ci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4
LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vy
c29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVf
Y29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5Iiwg
bGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNf
dmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlz
ZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpk
amFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBp
biBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9l
bnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxm
Lm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdl
ci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2Vs
Zi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAg
c2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIu
ZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwg
aW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNv
ciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nv
bm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxp
bmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UK
ICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGph
bmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3Qg
Y2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9y
ZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQK
ICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVp
bGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5i
cmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAg
YnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4g
Z2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25l
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxm
Ll9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0
Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMg
PSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIs
IGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1
cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNv
cgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2Vs
Zi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0
aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBl
LCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwg
aW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRl
bnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9y
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNl
bGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZv
bGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lw
ZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmls
ZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9y
bWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xh
eWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGlu
IF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51
cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVf
YW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3Rh
dGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3Rv
cmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFz
awogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEn
XQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGlu
IHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3Jl
Y2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5
ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZp
bGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRo
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlk
ZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJv
cgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBz
ZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRh
dGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxf
c3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlv
biA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNr
ZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21f
dGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25f
Zm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJf
dmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0
b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rh
c2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRh
J10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3
NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0
IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25F
cnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0
b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0
ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1h
dGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4g
X2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9v
YmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9l
bnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxm
Lm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdl
ci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2Vs
Zi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAg
c2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIu
ZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwg
aW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNv
ciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nv
bm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxp
bmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UK
ICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGph
bmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4g
c2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBk
YXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFs
X3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRp
b24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFz
a2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9t
X3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9u
X2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVy
X3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIs
IGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5p
bnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93
aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2
ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZl
bnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0
b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3Jl
X3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sK
ICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10K
QXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9y
ZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1
ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVf
YW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0
b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rh
c2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0
LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRh
dGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxf
c3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9n
X2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2df
ZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGlu
IHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9i
dWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dy
YXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5Iiwg
bGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9x
dWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9y
ZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRl
X3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVj
dXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2Vs
Zi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlv
bigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwg
aW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRy
YWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFp
c2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIu
dXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2Miwg
aW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmlu
dGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRh
dGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5k
X3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVb
J3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVf
dGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawog
ICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpB
c3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRl
bnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9y
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNl
bGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0
ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9z
dGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9z
dG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90
YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0
YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAz
NjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2Vy
dCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9u
RXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIg
aW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4g
dXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVy
bmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3Jt
YXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQu
dGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9m
cm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJz
aW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xh
eWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1Nywg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0
aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRh
c2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJv
bV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lv
bl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXll
cl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlv
biA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNr
ZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21f
dGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25f
Zm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJf
dmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24g
PSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2Zp
bGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rh
c2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zv
cl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3Zl
cnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0g
c2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNr
ZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3Jf
cGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJz
aW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVf
dGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawog
ICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpB
c3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMg
dGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3Jl
X2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4
NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9h
bmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3Rv
cmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFz
a2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQs
IGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0
ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9z
dGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9z
dG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90
YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0
YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4g
c3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93
aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2
ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZl
bnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0
b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
ODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4g
dXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVy
bmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQo
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVu
dGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
NjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2Vs
Zi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
dXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRl
X2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0
YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0
b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rh
c2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRh
J10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24g
d2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBz
dG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9y
ZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNr
CiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSdd
CkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEs
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBp
ZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJy
b3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4g
c2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBk
YXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFs
X3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRp
b24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFz
a2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9t
X3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9u
X2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVy
X3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9u
ID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tm
aWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90
YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9m
b3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92
ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9
IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmls
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFz
a2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9y
X3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVy
c2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBz
ZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tm
aWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9w
YXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNp
b25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAg
ICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFz
c2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVf
bG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFz
ayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAg
YXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3Nl
cnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xv
Z19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwg
aW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRf
c3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVf
dGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2Rh
dGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3Nl
cnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlv
bkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
c3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2
ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24g
d2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBz
dG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2Jq
ZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4g
bWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5h
bWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwg
aW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9
IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4
LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBj
dXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdf
Y3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwog
ICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRo
X3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dp
bmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2Yg
dGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZl
bnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYu
X2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNl
bGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1
ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5h
Z2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihz
ZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9h
bGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAg
ICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxl
ci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4
LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vy
c29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVf
Y29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5Iiwg
bGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNf
dmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlz
ZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpk
amFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0
b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVu
dAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9i
dWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxm
LmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAg
ICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVy
biBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xv
bmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNl
bGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9m
ZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0
cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5
IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24u
Y3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vy
c29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBz
ZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
dXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5
cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1
LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdh
cyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3Rv
cmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4
OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1
cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJu
YWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9h
bmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3Rv
cmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFz
a2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNr
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBh
c3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2Vy
dGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlm
aWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIs
IGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5p
bnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBk
YXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2Fu
ZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRl
Wyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3Jl
X3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sK
ICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10K
QXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlk
ZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJv
cgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRf
dGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlv
bl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dl
dF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmog
PSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1
cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9y
bV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5w
eSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5n
ZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2Vs
Zi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhl
Y3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4g
ZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9
IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5l
Y3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUg
OTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVl
LCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAg
IHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdv
LmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
NjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2Vs
Zi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
dXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRl
X2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0
YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24g
PSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2Zp
bGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rh
c2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zv
cl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3Zl
cnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0g
c2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNr
ZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3Jf
cGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJz
aW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNl
bGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2Zp
bGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3Bh
dGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lv
bl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxm
Ll9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxl
CiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRo
KGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25f
Zm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9l
bnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAg
ICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2Fy
Z3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0g
bGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9f
CiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1
LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAg
IHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21w
aWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25u
ZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIs
IGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJz
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNv
cgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRq
X2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBs
aW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNr
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBh
c3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2Vy
dGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9n
X2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBp
biBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9z
dG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90
YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0
YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4g
c3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93
aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2
ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZl
bnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0
b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0
ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRf
c3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsn
dGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAg
ICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFz
c2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVf
bG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0
LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBm
b2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1
cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9y
bV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5w
eSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5n
ZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2Vs
Zi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhl
Y3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4g
ZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9
IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5l
Y3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUg
OTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVl
LCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAg
IHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdv
LmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9s
b2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRp
ZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9n
X2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZp
ZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2Miwg
aW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmlu
dGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dp
bmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
MzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5m
b3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZl
bnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlv
bl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92
ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0
X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4
OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9l
bnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxm
Lm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdl
ci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2Vs
Zi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAg
c2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIu
ZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwg
aW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNv
ciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nv
bm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxp
bmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UK
ICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGph
bmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3Qg
Y2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9y
ZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQK
ICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVp
bGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5i
cmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAg
YnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4g
Z2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25l
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxm
Ll9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0
Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMg
PSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIs
IGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1
cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNv
cgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2Vs
Zi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0
aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBl
LCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwg
aW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMg
dGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3Jl
X2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4
NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODks
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBk
YXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFs
X3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZv
bGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3Vy
ZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3Jt
X3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0g
QnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5
IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdl
dF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxm
Ll9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVj
dXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBl
eGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0g
c2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVj
dGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5
OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUs
IHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAg
cmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28u
ZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xv
Z19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAg
c2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAog
ICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWls
ZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRh
dHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2Zl
dGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9h
bGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNv
bXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGlu
ZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29y
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAg
ICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVu
c3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMu
cHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRq
X2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiBy
ZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlm
aWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIs
IGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5p
bnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBk
YXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2Fu
ZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRl
Wyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3Jl
X3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sK
ICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10K
QXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBz
dG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNp
cGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVy
X3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxl
cGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3Rv
cmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBl
X2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92
ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBh
dGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRp
ZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYy
LCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYu
aW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9p
bmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShl
dmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0
aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVy
X3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9n
ZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2Jq
ZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4g
bWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5h
bWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwg
aW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9
IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4
LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBj
dXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdf
Y3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwog
ICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRo
X3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRh
dGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5k
X3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVb
J3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVf
dGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawog
ICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpB
c3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMg
dGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0
b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lw
ZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJf
dmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVw
YXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAg
ICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxk
CiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJi
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1
aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdl
dGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5f
ZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNo
X2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0g
Y29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBs
aW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJz
b3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IK
ICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYu
ZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGls
cy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwg
ZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGlu
IHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50
aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2
MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxm
LmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVf
aW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUo
ZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1h
dGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXll
cl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBf
Z2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBk
YXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2Fu
ZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRl
Wyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
ODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4g
dXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVy
bmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVf
YW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0
b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rh
c2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0
LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBm
b2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1
cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9y
bV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5w
eSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5n
ZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2Vs
Zi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhl
Y3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4g
ZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9
IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5l
Y3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUg
OTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVl
LCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAg
IHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdv
LmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9s
b2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xv
Z19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwg
aW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
dXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRl
X2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0
YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9i
dWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dy
YXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5Iiwg
bGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9x
dWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9y
ZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRl
X3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVj
dXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2Vs
Zi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlv
bigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwg
aW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRy
YWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFp
c2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIu
dXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19l
dmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
c3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2
ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24g
d2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBz
dG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9y
ZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNr
CiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSdd
CkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdh
cyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3Rv
cmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4
OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9l
bnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxm
Lm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdl
ci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2Vs
Zi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAg
c2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIu
ZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwg
aW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNv
ciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nv
bm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxp
bmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UK
ICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGph
bmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4g
c2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBk
YXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFs
X3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5k
X3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3Jl
X3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tk
YXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNz
ZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRp
b25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0
YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZv
cm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwg
aW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lv
bl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFy
dGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3Jt
YXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGlu
IF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25f
b2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGlu
IHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVw
ZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5h
bF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2Fu
ZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9y
ZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNr
ZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFz
c2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0
aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZp
ZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2Miwg
aW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmlu
dGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dp
bmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
MzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5m
b3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZl
bnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlv
bl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92
ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0
X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1
NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9y
bWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50
LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25f
ZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVy
c2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9s
YXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9h
bmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3Rv
cmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFz
a2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
MDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5f
Z2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQog
ICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChs
b2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zv
cl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNz
ZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRp
b25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19l
dmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4g
c3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93
aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2
ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZl
bnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQg
aWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVy
cm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGlu
IHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVw
ZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5h
bF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBm
b2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1
cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9y
bV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5w
eSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5n
ZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2Vs
Zi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhl
Y3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4g
ZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9
IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5l
Y3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUg
OTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVl
LCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAg
IHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdv
LmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
NjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2Vs
Zi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
dXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRl
X2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0
YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24g
PSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2Zp
bGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rh
c2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zv
cl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3Zl
cnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0g
c2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNr
ZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3Jf
cGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJz
aW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVf
dGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawog
ICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpB
c3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMg
dGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3Jl
X2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4
NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODks
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBk
YXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFs
X3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZv
bGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3Vy
ZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3Jt
X3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0g
QnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5
IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdl
dF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxm
Ll9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVj
dXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBl
eGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0g
c2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVj
dGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5
OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUs
IHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAg
cmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28u
ZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xv
Z19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAg
c2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAog
ICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWls
ZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRh
dHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2Zl
dGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9h
bGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNv
bXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGlu
ZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29y
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAg
ICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVu
c3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMu
cHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRq
X2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiBy
ZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9n
X2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNz
ZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRp
b25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19l
dmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4g
c3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3Rv
cmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFz
awogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEn
XQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0
b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
ODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVu
dChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0
IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3Rv
cmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9y
ZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1
ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVw
ZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5h
bF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2Fu
ZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9y
ZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNr
ZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFz
c2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0
aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZp
ZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2Miwg
aW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmlu
dGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dp
bmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
MzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5m
b3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZl
bnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlv
bl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92
ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0
X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRl
X2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9z
dG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0
YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rh
c2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAg
IGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNz
ZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50
aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0
YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFz
awogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9m
cm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9y
ZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBz
ZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFy
dGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sK
ICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJv
bV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVj
aXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2Vs
Zi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRl
ZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAg
ICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21f
dGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lw
ZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYu
X2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4g
dXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVy
bmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVw
ZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5h
bF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2Fu
ZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9y
ZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNr
ZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwg
aW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9n
X2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2df
ZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGlu
IHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9i
dWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dy
YXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5Iiwg
bGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9x
dWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9y
ZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRl
X3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVj
dXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2Vs
Zi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlv
bigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwg
aW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRy
YWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFp
c2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIu
dXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2Miwg
aW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmlu
dGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dp
bmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2Yg
dGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZl
bnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYu
X2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNl
bGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1
ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5h
Z2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihz
ZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9h
bGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAg
ICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxl
ci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4
LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vy
c29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVf
Y29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5Iiwg
bGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNf
dmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlz
ZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpk
amFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0
b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVu
dAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9i
dWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxm
LmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAg
ICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVy
biBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xv
bmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNl
bGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9m
ZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0
cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5
IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24u
Y3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vy
c29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBz
ZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
dXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5
cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1
LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdh
cyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3Rv
cmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4
OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9l
bnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxm
Lm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdl
ci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2Vs
Zi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAg
c2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIu
ZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwg
aW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNv
ciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nv
bm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxp
bmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UK
ICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGph
bmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4g
c2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBk
YXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFs
X3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRp
b24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFz
a2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9t
X3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9u
X2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVy
X3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9z
dG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90
YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0
YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4g
c3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93
aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBp
biB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50
ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0
ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRf
c3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsn
dGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2Vs
Zi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmls
ZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0
aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9u
X2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFz
ayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAg
YXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3Nl
cnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRp
ZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYy
LCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYu
aW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVw
ZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9h
bmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0
ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9y
ZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNr
CiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSdd
CkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEs
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBp
ZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJy
b3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4g
c2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBk
YXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFs
X3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRp
b24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFz
a2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9t
X3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9u
X2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVy
X3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9u
ID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tm
aWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90
YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9m
b3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92
ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9
IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmls
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFz
a2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9y
X3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVy
c2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBz
ZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tm
aWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9w
YXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNp
b25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAg
ICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFz
c2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVu
dGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9s
b2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xv
Z19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwg
aW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
dXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRl
X2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0
YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0
b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rh
c2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRh
J10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24g
d2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBz
dG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2Jq
ZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4g
bWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5h
bWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwg
aW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9
IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4
LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBj
dXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdf
Y3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwog
ICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRo
X3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRh
dGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5k
X3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVb
J3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4
OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9l
bnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxm
Lm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdl
ci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2Vs
Zi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAg
c2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIu
ZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwg
aW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNv
ciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nv
bm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxp
bmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UK
ICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGph
bmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3Qg
Y2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9y
ZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQK
ICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVp
bGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5i
cmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAg
YnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4g
Z2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25l
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxm
Ll9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0
Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMg
PSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIs
IGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1
cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNv
cgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2Vs
Zi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0
aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBl
LCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwg
aW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRl
bnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9y
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNl
bGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZv
bGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lw
ZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmls
ZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9y
bWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xh
eWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGlu
IF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2df
ZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNl
bGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAg
IHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRy
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9t
YW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0
cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRj
aF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxs
CiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21w
aWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUg
ODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAg
Y3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1
cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5
IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9l
eGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVy
YWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19l
dmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4g
c3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3Rv
cmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFz
awogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEn
XQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQg
aWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVy
cm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGlu
IHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rh
c2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJl
Y2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNr
ZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2lu
Zm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0
X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEs
IGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRh
dGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxf
c3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRf
c3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVf
dGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2Rh
dGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3Nl
cnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlv
bkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVy
IGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGlu
IHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRl
cm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRl
X2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9z
dG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0
YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rh
c2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAg
IGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNz
ZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50
aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0
YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFz
awogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9m
cm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9y
ZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBz
ZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFy
dGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sK
ICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJv
bV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVj
aXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2Vs
Zi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRl
ZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAg
ICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21f
dGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lw
ZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYu
X2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRf
dGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAg
cmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rh
c2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVf
aW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9n
ZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAw
MSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVw
ZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5h
bF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2Fu
ZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9y
ZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNr
ZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFz
c2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0
aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9z
dGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5m
b3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEs
IGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNp
b25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVy
IGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGlu
IHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRl
cm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRl
X2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9z
dG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0
YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rh
c2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAg
IGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNz
ZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRo
ZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9s
b2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9l
bnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAg
ICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2Fy
Z3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0g
bGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9f
CiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1
LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAg
IHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21w
aWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25u
ZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIs
IGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJz
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNv
cgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRq
X2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBs
aW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQs
IGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZv
bGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3Vy
ZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3Jt
X3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0g
QnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5
IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdl
dF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxm
Ll9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVj
dXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBl
eGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0g
c2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVj
dGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5
OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUs
IHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAg
cmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28u
ZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xv
Z19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAg
c2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAog
ICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWls
ZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRh
dHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2Zl
dGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9h
bGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNv
bXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGlu
ZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29y
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAg
ICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVu
c3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMu
cHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRq
X2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiBy
ZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9n
X2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBp
biBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIs
IGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5p
bnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBk
YXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2Fu
ZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRl
Wyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3Jl
X3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sK
ICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10K
QXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlk
ZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJv
cgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBz
ZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBm
b2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNr
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNp
cGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2Zp
bGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZv
cm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9s
YXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBp
biBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBl
X2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxl
KGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3Jt
YXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5
ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4g
X2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVw
ZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9h
bmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0
ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9y
ZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNr
CiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSdd
CkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdh
cyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3Rv
cmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4
OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9l
bnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxm
Lm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdl
ci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2Vs
Zi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAg
c2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIu
ZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwg
aW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNv
ciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nv
bm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxp
bmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UK
ICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGph
bmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3Qg
Y2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9y
ZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQK
ICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVp
bGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5i
cmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAg
YnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4g
Z2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25l
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxm
Ll9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0
Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMg
PSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIs
IGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1
cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNv
cgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2Vs
Zi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0
aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBl
LCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwg
aW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMg
dGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3Jl
X2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4
NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODks
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5z
dXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5v
cm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3Qg
PSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIu
cHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYu
Z2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNl
bGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4
ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGlu
IGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3Ig
PSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25u
ZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5l
IDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1
ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAg
ICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5n
by5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNh
dXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVf
bG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAg
ICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxk
CiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJi
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1
aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdl
dGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5f
ZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNo
X2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0g
Y29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBs
aW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJz
b3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IK
ICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYu
ZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGls
cy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwg
ZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGlu
IHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50
aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2
MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxm
LmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51
cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVf
YW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3Rh
dGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3Rv
cmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFz
awogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEn
XQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGlu
IHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3Jl
Y2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5
ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZp
bGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRo
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBz
dG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNp
cGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVy
X3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxl
cGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVu
dGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9s
b2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xv
Z19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFz
c2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0
aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2df
ZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGlu
IHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9i
dWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dy
YXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5Iiwg
bGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9x
dWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9y
ZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRl
X3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVj
dXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2Vs
Zi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlv
bigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwg
aW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRy
YWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFp
c2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIu
dXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19l
dmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVy
IGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGlu
IHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRl
cm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1
NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9y
bWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50
LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25f
ZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVy
c2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9s
YXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9h
bmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3Rv
cmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFz
a2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNr
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBh
c3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2Vy
dGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVf
c3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2lu
Zm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMx
LCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJz
aW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNl
bGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAg
IHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRy
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9t
YW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0
cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRj
aF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxs
CiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21w
aWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUg
ODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAg
Y3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1
cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5
IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9l
eGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVy
YWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmll
ciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2
ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZl
bnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0
b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0
ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRf
c3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsn
dGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1
ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQo
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVf
bG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0
LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBm
b2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1
cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9y
bV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5w
eSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5n
ZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2Vs
Zi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhl
Y3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4g
ZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9
IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5l
Y3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUg
OTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVl
LCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAg
IHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdv
LmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
NjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2Vs
Zi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
dXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRl
X2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0
YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0
b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rh
c2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRh
J10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2
MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0
IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25F
cnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0
b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0
ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1h
dGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4g
X2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9v
YmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9l
bnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxm
Lm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdl
ci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2Vs
Zi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAg
c2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIu
ZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwg
aW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNv
ciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nv
bm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxp
bmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UK
ICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGph
bmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3Qg
Y2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9y
ZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVk
X3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRp
b25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9n
ZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2Jq
ID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5z
dXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5v
cm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3Qg
PSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIu
cHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYu
Z2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNl
bGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4
ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGlu
IGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3Ig
PSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25u
ZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5l
IDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1
ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAg
ICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5n
by5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNh
dXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVf
bG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAg
ICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxk
CiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJi
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1
aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdl
dGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5f
ZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNo
X2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0g
Y29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBs
aW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJz
b3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IK
ICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYu
ZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGls
cy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwg
ZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGlu
IHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50
aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2
MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxm
LmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51
cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVf
YW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3Rh
dGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBk
YXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2Fu
ZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRl
Wyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAz
NTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZv
cm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVu
dC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9u
X2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3Zl
cnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRf
bGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVw
ZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5h
bF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2Fu
ZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9y
ZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNr
ZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIw
OSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9n
ZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAg
ICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxv
Y2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9y
X3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGlu
IHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9i
dWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dy
YXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5Iiwg
bGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9x
dWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9y
ZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRl
X3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVj
dXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2Vs
Zi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlv
bigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwg
aW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRy
YWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFp
c2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIu
dXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19l
dmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
c3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2
ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24g
d2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBz
dG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2Jq
ZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4g
bWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5h
bWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwg
aW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9
IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4
LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBj
dXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdf
Y3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwog
ICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRo
X3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dp
bmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2Yg
dGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZl
bnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYu
X2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNl
bGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1
ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5h
Z2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihz
ZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9h
bGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAg
ICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxl
ci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4
LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vy
c29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVf
Y29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5Iiwg
bGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNf
dmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlz
ZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpk
amFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0
b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVu
dAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9i
dWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxm
LmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAg
ICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVy
biBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xv
bmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNl
bGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9m
ZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0
cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5
IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24u
Y3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vy
c29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBz
ZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
dXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5
cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1
LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdh
cyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3Rv
cmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4
OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9l
bnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxm
Lm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdl
ci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2Vs
Zi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAg
c2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIu
ZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwg
aW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNv
ciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nv
bm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxp
bmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UK
ICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGph
bmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3Qg
Y2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9y
ZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQK
ICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVp
bGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5i
cmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAg
YnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4g
Z2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25l
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxm
Ll9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0
Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMg
PSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIs
IGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1
cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNv
cgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2Vs
Zi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0
aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBl
LCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwg
aW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMg
dGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3Jl
X2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4
NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODks
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5z
dXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5v
cm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3Qg
PSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIu
cHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYu
Z2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNl
bGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4
ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGlu
IGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3Ig
PSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25u
ZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5l
IDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1
ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAg
ICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5n
by5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNh
dXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVf
bG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAg
ICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxk
CiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJi
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1
aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdl
dGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5f
ZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNo
X2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0g
Y29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBs
aW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJz
b3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IK
ICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYu
ZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGls
cy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwg
ZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGlu
IHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50
aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2
MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxm
LmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVf
aW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUo
ZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1h
dGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXll
cl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBf
Z2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBk
YXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2Fu
ZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRl
Wyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3Jl
X3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sK
ICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10K
QXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlk
ZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJv
cgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBz
ZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBm
b2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNr
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNp
cGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2Zp
bGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZv
cm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9s
YXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBp
biBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYy
LCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYu
aW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVw
ZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9h
bmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0
ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0g
c2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNr
ZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3Jf
cGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJz
aW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVf
dGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawog
ICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpB
c3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRl
bnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9y
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNl
bGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZv
bGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3Vy
ZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3Jt
X3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0g
QnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5
IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdl
dF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxm
Ll9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVj
dXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBl
eGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0g
c2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVj
dGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5
OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUs
IHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAg
cmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28u
ZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xv
Z19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAg
c2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAog
ICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWls
ZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRh
dHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2Zl
dGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9h
bGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNv
bXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGlu
ZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29y
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAg
ICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVu
c3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMu
cHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRq
X2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiBy
ZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9n
X2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBp
biBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2df
ZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNl
bGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAg
IHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRy
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9t
YW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0
cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRj
aF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxs
CiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21w
aWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUg
ODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAg
Y3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1
cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5
IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9l
eGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVy
YWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19l
dmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
NzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2Vy
dCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9u
RXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIg
aW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRf
dGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAg
cmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rh
c2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVf
aW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9n
ZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAw
MSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVw
ZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5h
bF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBm
b2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1
cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9y
bV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5w
eSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5n
ZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2Vs
Zi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhl
Y3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4g
ZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9
IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5l
Y3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUg
OTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVl
LCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAg
IHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdv
LmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9s
b2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xv
Z19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwg
aW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
dXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRl
X2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0
YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0
b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rh
c2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRh
J10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24g
d2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBp
biBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9y
ZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxh
eWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxm
aWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0
aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9i
dWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxm
LmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAg
ICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVy
biBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xv
bmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNl
bGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9m
ZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0
cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5
IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24u
Y3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vy
c29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBz
ZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
dXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5
cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1
LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQs
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBp
ZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJy
b3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4g
c2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFz
ayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVj
aXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tm
aWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5m
b3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRf
bGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwg
aW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZv
bGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3Vy
ZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3Jt
X3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0g
QnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5
IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdl
dF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxm
Ll9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVj
dXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBl
eGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0g
c2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVj
dGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5
OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUs
IHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAg
cmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28u
ZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2
MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxm
LmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2df
ZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNl
bGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAg
IHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRy
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9t
YW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0
cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRj
aF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxs
CiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21w
aWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUg
ODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAg
Y3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1
cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5
IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9l
eGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVy
YWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19l
dmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
NzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2Vy
dCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9u
RXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZl
bnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0
b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3Jl
X3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sK
ICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10K
QXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlk
ZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJv
cgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBz
ZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRh
dGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxf
c3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlv
biA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNr
ZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21f
dGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25f
Zm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJf
dmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24g
PSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2Zp
bGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rh
c2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zv
cl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3Zl
cnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2Jq
ZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4g
bWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5h
bWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwg
aW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9
IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4
LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBj
dXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdf
Y3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwog
ICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRo
X3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRh
dGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5k
X3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVb
J3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRl
X2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9z
dG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0
YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4
NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODks
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5z
dXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5v
cm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3Qg
PSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIu
cHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYu
Z2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNl
bGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4
ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGlu
IGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3Ig
PSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25u
ZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5l
IDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1
ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAg
ICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5n
by5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNh
dXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVf
bG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAg
ICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxk
CiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJi
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1
aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdl
dGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5f
ZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNo
X2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0g
Y29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBs
aW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJz
b3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IK
ICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYu
ZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGls
cy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwg
ZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGlu
IHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRo
ZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9s
b2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9l
bnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAg
ICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2Fy
Z3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0g
bGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9f
CiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1
LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAg
IHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21w
aWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25u
ZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIs
IGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJz
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNv
cgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRq
X2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBs
aW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQs
IGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZv
bGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3Vy
ZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3Jt
X3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0g
QnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5
IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdl
dF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxm
Ll9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVj
dXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBl
eGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0g
c2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVj
dGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5
OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUs
IHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAg
cmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28u
ZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xv
Z19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAg
c2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAog
ICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWls
ZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRh
dHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2Zl
dGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9h
bGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNv
bXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGlu
ZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29y
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAg
ICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVu
c3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMu
cHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRq
X2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiBy
ZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9n
X2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBp
biBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9z
dG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90
YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0
YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
NzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2Vy
dCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9u
RXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIg
aW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4g
dXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVy
bmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rh
c2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJl
Y2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNr
ZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2lu
Zm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0
X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEs
IGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBm
b2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNr
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNp
cGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2Zp
bGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZv
cm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9s
YXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBp
biBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYy
LCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYu
aW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9i
dWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dy
YXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5Iiwg
bGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9x
dWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9y
ZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRl
X3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVj
dXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2Vs
Zi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlv
bigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwg
aW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRy
YWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFp
c2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIu
dXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2Miwg
aW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmlu
dGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRh
dGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5k
X3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVb
J3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRl
X2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9z
dG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0
YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxm
Ll9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxl
CiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRo
KGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25f
Zm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9l
bnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAg
ICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2Fy
Z3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0g
bGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9f
CiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1
LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAg
IHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21w
aWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25u
ZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIs
IGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJz
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNv
cgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRq
X2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBs
aW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQs
IGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZv
bGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3Vy
ZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3Jt
X3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0g
QnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5
IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdl
dF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxm
Ll9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVj
dXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBl
eGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0g
c2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVj
dGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5
OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUs
IHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAg
cmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28u
ZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xv
Z19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAg
c2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAog
ICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWls
ZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRh
dHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2Zl
dGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9h
bGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNv
bXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGlu
ZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29y
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAg
ICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVu
c3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMu
cHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRq
X2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiBy
ZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9n
X2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNz
ZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRp
b25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmll
ciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBp
biB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50
ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0
ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRf
c3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsn
dGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAg
ICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFz
c2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVf
bG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0
LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBm
b2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1
cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9y
bV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5w
eSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5n
ZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2Vs
Zi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhl
Y3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4g
ZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9
IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5l
Y3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUg
OTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVl
LCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAg
IHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdv
LmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9s
b2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xv
Z19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwg
aW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlv
biA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNr
ZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21f
dGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25f
Zm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJf
dmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9i
dWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dy
YXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5Iiwg
bGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9x
dWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9y
ZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRl
X3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVj
dXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2Vs
Zi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlv
bigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwg
aW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRy
YWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFp
c2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIu
dXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0
ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawog
ICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9t
X3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNp
cGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxm
Ll9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2Yg
dGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZl
bnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYu
X2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNl
bGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1
ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5h
Z2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihz
ZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9h
bGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAg
ICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxl
ci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4
LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vy
c29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVf
Y29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5Iiwg
bGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNf
dmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlz
ZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpk
amFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0
b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVu
dAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9i
dWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxm
LmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAg
ICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVy
biBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xv
bmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNl
bGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9m
ZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0
cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5
IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24u
Y3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vy
c29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBz
ZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
dXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5
cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1
LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQs
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBp
ZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJy
b3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3Qg
Y2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9y
ZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQK
ICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVp
bGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5i
cmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAg
YnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4g
Z2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25l
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxm
Ll9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0
Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMg
PSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIs
IGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1
cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNv
cgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2Vs
Zi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0
aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBl
LCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwg
aW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMg
dGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3Jl
X2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4
NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9h
bmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3Rv
cmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFz
a2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQs
IGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZv
bGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3Vy
ZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3Jt
X3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0g
QnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5
IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdl
dF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxm
Ll9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVj
dXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBl
eGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0g
c2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVj
dGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5
OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUs
IHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAg
cmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28u
ZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xv
Z19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAg
c2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAog
ICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWls
ZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRh
dHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2Zl
dGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9h
bGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNv
bXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGlu
ZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29y
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAg
ICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVu
c3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMu
cHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRq
X2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiBy
ZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9n
X2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNz
ZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRp
b25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmll
ciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRl
ZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAg
ICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21f
dGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lw
ZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYu
X2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4g
dXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVy
bmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQo
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVu
dGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
NjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2Vs
Zi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBl
X2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxl
KGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3Jt
YXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5
ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4g
X2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVw
ZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9h
bmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0
ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9y
ZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNr
CiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSdd
CkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdh
cyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4g
c3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVj
aXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXll
cl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmls
ZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgK
ICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVp
bGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5i
cmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAg
YnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4g
Z2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25l
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxm
Ll9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0
Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMg
PSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIs
IGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1
cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNv
cgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2Vs
Zi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0
aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBl
LCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwg
aW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRl
bnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9y
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNh
dXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVf
bG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAg
ICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxk
CiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJi
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1
aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdl
dGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5f
ZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNo
X2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0g
Y29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBs
aW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJz
b3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IK
ICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYu
ZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGls
cy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwg
ZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGlu
IHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRo
ZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9s
b2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9l
bnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAg
ICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2Fy
Z3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0g
bGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9f
CiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1
LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAg
IHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21w
aWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25u
ZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIs
IGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJz
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNv
cgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRq
X2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBs
aW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQs
IGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5k
X3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3Jl
X3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tk
YXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBp
biBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2df
ZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNl
bGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAg
IHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRy
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9t
YW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0
cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRj
aF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxs
CiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21w
aWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUg
ODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAg
Y3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1
cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5
IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9l
eGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVy
YWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19l
dmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4g
c3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93
aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2
ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIg
aW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4g
dXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVy
bmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVf
YW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0
b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rh
c2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFz
ayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAg
YXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3Nl
cnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3Jl
X3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9p
bmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAz
MSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVy
c2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9z
dGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5m
b3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEs
IGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNp
b25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVy
IGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGlu
IHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRl
cm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRl
X2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9z
dG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0
YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rh
c2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAg
IGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNz
ZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50
aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2
MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxm
LmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVf
aW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUo
ZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1h
dGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXll
cl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBf
Z2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93
aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2lu
Zm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2
ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRp
b25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJf
dmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dl
dF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAz
NTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZv
cm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVu
dC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9u
X2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3Zl
cnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRf
bGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVf
YW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0
b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rh
c2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFz
ayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAg
YXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3Nl
cnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xv
Z19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwg
aW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRf
c3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVf
dGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2Rh
dGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3Nl
cnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlv
bkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVy
IGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGlu
IHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRl
cm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4
OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICBy
ZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFz
a2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9p
bmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dl
dF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAx
LCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5z
dXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5v
cm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3Qg
PSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIu
cHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYu
Z2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNl
bGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4
ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGlu
IGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3Ig
PSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25u
ZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5l
IDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1
ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAg
ICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5n
by5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNl
bGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZv
bGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3Vy
ZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3Jt
X3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0g
QnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5
IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdl
dF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxm
Ll9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVj
dXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBl
eGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0g
c2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVj
dGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5
OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUs
IHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAg
cmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28u
ZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xv
Z19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAg
c2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAog
ICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWls
ZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRh
dHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2Zl
dGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9h
bGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNv
bXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGlu
ZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29y
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAg
ICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVu
c3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMu
cHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRq
X2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiBy
ZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9n
X2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBp
biBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2df
ZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNl
bGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAg
IHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRy
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9t
YW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0
cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRj
aF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxs
CiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21w
aWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUg
ODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAg
Y3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1
cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5
IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9l
eGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVy
YWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19l
dmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4g
c3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBk
YXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2Fu
ZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRl
Wyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0
ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRf
c3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsn
dGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAg
ICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFz
c2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3Rv
cmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBl
X2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92
ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBh
dGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRp
ZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYy
LCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYu
aW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9p
bmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShl
dmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0
aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVy
X3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9n
ZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2Jq
ZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4g
bWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5h
bWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwg
aW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9
IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4
LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBj
dXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdf
Y3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwog
ICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRo
X3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRh
dGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5k
X3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVb
J3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNl
bGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2Zp
bGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3Bh
dGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lv
bl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rh
c2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAg
IGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNz
ZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRo
ZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9y
ZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVf
aW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEw
MzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3Zl
cnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0
aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAg
c2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAog
ICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWls
ZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRh
dHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2Zl
dGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9h
bGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNv
bXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGlu
ZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29y
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAg
ICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVu
c3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMu
cHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRq
X2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiBy
ZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlm
aWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFy
dGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sK
ICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJv
bV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVj
aXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2Vs
Zi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBp
biB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50
ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAz
NTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZv
cm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVu
dC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9u
X2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3Zl
cnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRf
bGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVf
YW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0
b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rh
c2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYu
X2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUK
ICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgo
bG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9m
b3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFz
c2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0
aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZp
ZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0
ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawog
ICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9t
X3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNp
cGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxm
Ll9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGlu
IHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRl
cm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1
NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9y
bWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50
LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25f
ZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVy
c2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9s
YXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9h
bmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3Rv
cmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFz
a2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
MDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5f
Z2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQog
ICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChs
b2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zv
cl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNz
ZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRp
b25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmll
ciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBp
biB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50
ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0
ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRf
c3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsn
dGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAg
ICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFz
c2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVu
dGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9z
dGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rh
c2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25f
ZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRf
cmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0g
c2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYy
LCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYu
aW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVw
ZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9h
bmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0
ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9y
ZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNr
CiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSdd
CkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdh
cyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4g
c3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVj
aXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXll
cl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmls
ZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgK
ICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVp
bGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5i
cmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAg
YnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4g
Z2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25l
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxm
Ll9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0
Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMg
PSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIs
IGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1
cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNv
cgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2Vs
Zi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0
aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBl
LCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwg
aW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRl
bnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9y
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNh
dXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVf
c3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90
YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9u
X2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0
X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9
IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3Vy
ZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3Jt
X3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0g
QnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5
IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdl
dF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxm
Ll9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVj
dXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBl
eGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0g
c2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVj
dGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5
OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUs
IHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAg
cmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28u
ZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0
YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFz
awogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9m
cm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9y
ZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBz
ZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIs
IGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5p
bnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBk
YXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2Fu
ZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRl
Wyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3Jl
X3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sK
ICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10K
QXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9y
ZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAg
ICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFz
c2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVu
dGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9z
dGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rh
c2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25f
ZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRf
cmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0g
c2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9n
X2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2df
ZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3Nl
cnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlv
bkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVy
IGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGlu
IHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRl
cm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRl
X2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9z
dG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0
YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rh
c2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAg
IGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNz
ZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRo
ZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9y
ZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVf
aW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEw
MzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3Zl
cnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0
aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAg
c2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAog
ICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWls
ZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRh
dHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2Zl
dGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9h
bGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNv
bXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGlu
ZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29y
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAg
ICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVu
c3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMu
cHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRq
X2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiBy
ZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlm
aWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIs
IGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5p
bnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBk
YXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2Fu
ZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRl
Wyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBz
ZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tm
aWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9w
YXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNp
b25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAg
ICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFz
c2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVf
bG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0
LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRh
dGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxf
c3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRf
c3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVf
dGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2Rh
dGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDks
IGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0
X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAg
bGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2Nh
bGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9w
YXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2
MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0
IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25F
cnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBp
biBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1
cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJu
YWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcs
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1h
dGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50
YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zy
b21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNp
b25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5
ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5k
X3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3Jl
X3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tk
YXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNz
ZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRp
b25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmll
ciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRl
ZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAg
ICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21f
dGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lw
ZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYu
X2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4g
dXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVy
bmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQo
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVu
dGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
NjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2Vs
Zi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBl
X2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxl
KGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3Jt
YXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5
ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4g
X2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVw
ZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9h
bmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0
ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2Jq
ZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4g
bWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5h
bWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwg
aW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9
IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4
LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBj
dXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdf
Y3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwog
ICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRo
X3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dp
bmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGlu
IHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRl
cm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRl
X2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9z
dG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0
YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxm
Ll9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxl
CiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRo
KGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25f
Zm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9l
bnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAg
ICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2Fy
Z3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0g
bGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9f
CiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1
LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAg
IHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21w
aWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25u
ZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIs
IGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJz
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNv
cgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRq
X2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBs
aW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNr
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBh
c3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2Vy
dGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9n
X2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNz
ZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRp
b25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmll
ciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRl
ZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAg
ICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21f
dGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lw
ZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYu
X2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4g
dXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVy
bmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVf
YW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0
b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rh
c2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFz
ayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAg
YXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3Nl
cnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3Jl
X3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9p
bmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAz
MSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVy
c2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZp
ZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2Miwg
aW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmlu
dGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dp
bmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
MzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5m
b3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZl
bnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlv
bl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92
ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0
X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRl
X2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9z
dG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0
YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rh
c2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAg
IGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNz
ZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRo
ZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9s
b2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9l
bnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAg
ICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2Fy
Z3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0g
bGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9f
CiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1
LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAg
IHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21w
aWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25u
ZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIs
IGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJz
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNv
cgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRq
X2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBs
aW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNr
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBh
c3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2Vy
dGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlm
aWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFy
dGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sK
ICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJv
bV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVj
aXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2Vs
Zi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBp
biB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50
ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0
ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRf
c3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsn
dGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2Vs
Zi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmls
ZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0
aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9u
X2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFz
ayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAg
YXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3Nl
cnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRp
ZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9n
X2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2df
ZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGlu
IHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0
b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rh
c2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRh
J10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2
MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0
IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25F
cnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0
b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0
ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1h
dGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4g
X2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9v
YmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9l
bnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxm
Lm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdl
ci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2Vs
Zi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAg
c2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIu
ZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwg
aW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNv
ciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nv
bm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxp
bmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UK
ICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGph
bmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3Qg
Y2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9y
ZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVk
X3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRp
b25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9n
ZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2Jq
ID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5z
dXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5v
cm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3Qg
PSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIu
cHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYu
Z2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNl
bGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4
ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGlu
IGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3Ig
PSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25u
ZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5l
IDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1
ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAg
ICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5n
by5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNl
bGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0
ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9z
dGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2df
ZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNl
bGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAg
IHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRy
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9t
YW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0
cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRj
aF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxs
CiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21w
aWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUg
ODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAg
Y3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1
cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5
IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9l
eGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVy
YWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmll
ciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBp
biB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50
ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAz
NTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZv
cm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVu
dC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9u
X2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3Zl
cnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRf
bGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVf
YW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0
b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rh
c2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0
LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2Fu
ZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9y
ZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNr
ZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFz
c2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0
aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9z
dGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5m
b3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEs
IGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNp
b25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVy
IGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2Yg
dGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZl
bnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYu
X2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNl
bGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1
ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5h
Z2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihz
ZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9h
bGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAg
ICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxl
ci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4
LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vy
c29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVf
Y29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5Iiwg
bGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNf
dmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlz
ZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpk
amFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBp
biBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1
cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJu
YWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcs
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1h
dGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50
YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zy
b21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNp
b25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5
ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5k
X3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3Jl
X3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tk
YXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBp
biBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2df
ZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNl
bGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAg
IHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRy
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9t
YW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0
cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRj
aF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxs
CiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21w
aWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUg
ODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAg
Y3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1
cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5
IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9l
eGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVy
YWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmll
ciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBp
biB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50
ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAz
NTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZv
cm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVu
dC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9u
X2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3Zl
cnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRf
bGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3Jt
YXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQu
dGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9m
cm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJz
aW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xh
eWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1Nywg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0
aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRh
c2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJv
bV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lv
bl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXll
cl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRf
c3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVf
dGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2Rh
dGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3Nl
cnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlv
bkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVy
IGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2Yg
dGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZl
bnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYu
X2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNl
bGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1
ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5h
Z2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihz
ZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9h
bGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAg
ICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxl
ci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4
LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vy
c29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVf
Y29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5Iiwg
bGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNf
dmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlz
ZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpk
amFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBp
biBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1
cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJu
YWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODks
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5z
dXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5v
cm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3Qg
PSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIu
cHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYu
Z2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNl
bGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4
ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGlu
IGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3Ig
PSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25u
ZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5l
IDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1
ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAg
ICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5n
by5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNl
bGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0
ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9z
dGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9u
ID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tm
aWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90
YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9m
b3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92
ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3Rv
cmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFz
awogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEn
XQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0
b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3Jl
X3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sK
ICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10K
QXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlk
ZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJv
cgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRf
dGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlv
bl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dl
dF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmog
PSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1
cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9y
bV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5w
eSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5n
ZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2Vs
Zi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhl
Y3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4g
ZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9
IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5l
Y3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUg
OTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVl
LCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAg
IHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdv
LmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
NjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2Vs
Zi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYy
LCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYu
aW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVw
ZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9h
bmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0
ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0g
c2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNr
ZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3Jf
cGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJz
aW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVf
dGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawog
ICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpB
c3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMg
dGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3Jl
X2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4
NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODks
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5z
dXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5v
cm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3Qg
PSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIu
cHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYu
Z2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNl
bGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4
ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGlu
IGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3Ig
PSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25u
ZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5l
IDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1
ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAg
ICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5n
by5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNl
bGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0
ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9z
dGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9u
ID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tm
aWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90
YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9m
b3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92
ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9
IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmls
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFz
a2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9y
X3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVy
c2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3Jl
X3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sK
ICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10K
QXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlk
ZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJv
cgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVu
dGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
NjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2Vs
Zi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBl
X2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxl
KGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3Jt
YXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5
ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4g
X2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9p
bmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShl
dmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0
aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVy
X3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9n
ZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2Jq
ZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4g
bWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5h
bWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwg
aW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9
IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4
LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBj
dXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdf
Y3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwog
ICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRo
X3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRh
dGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5k
X3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVb
J3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVf
dGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawog
ICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpB
c3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRl
bnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9y
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNl
bGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0
ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9z
dGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9z
dG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90
YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0
YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwg
aW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRf
cmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBs
YXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2Fs
ZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3Bh
dGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGlu
IHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3Jl
Y2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5
ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZp
bGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRo
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlk
ZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJv
cgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBz
ZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBm
b2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1
cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9y
bV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5w
eSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5n
ZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2Vs
Zi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhl
Y3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4g
ZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9
IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5l
Y3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUg
OTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVl
LCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAg
IHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdv
LmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9s
b2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xv
Z19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFz
c2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0
aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZp
ZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19l
dmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVy
IGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGlu
IHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRl
cm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4
OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9l
bnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxm
Lm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdl
ci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2Vs
Zi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAg
c2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIu
ZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwg
aW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNv
ciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nv
bm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxp
bmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UK
ICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGph
bmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4g
c2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBk
YXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFs
X3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRp
b24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFz
a2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9t
X3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9u
X2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVy
X3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9z
dG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90
YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0
YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4g
c3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3Rv
cmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFz
awogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEn
XQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYx
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQg
aWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVy
cm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0
IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3Rv
cmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRl
ZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0
aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBf
Z2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29i
aiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBz
ZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBm
b2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1
cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9y
bV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5w
eSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5n
ZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2Vs
Zi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhl
Y3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4g
ZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9
IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5l
Y3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUg
OTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVl
LCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAg
IHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdv
LmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
NjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2Vs
Zi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
dXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRl
X2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0
YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24g
PSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2Zp
bGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rh
c2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zv
cl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3Zl
cnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9y
ZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNr
CiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSdd
CkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdh
cyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3Rv
cmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4
OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9l
bnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxm
Lm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdl
ci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2Vs
Zi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAg
c2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIu
ZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwg
aW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNv
ciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nv
bm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxp
bmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UK
ICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGph
bmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4g
c2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBk
YXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFs
X3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRp
b24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFz
a2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9t
X3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9u
X2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVy
X3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9u
ID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tm
aWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90
YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9m
b3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92
ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9
IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmls
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFz
a2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9y
X3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVy
c2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBz
ZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tm
aWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9w
YXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNp
b25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2Vs
Zi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmls
ZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0
aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9u
X2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYu
X2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUK
ICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgo
bG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9m
b3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIw
OSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9n
ZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAg
ICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxv
Y2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9y
X3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDks
IGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0
X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAg
bGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2Nh
bGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9w
YXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3
NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0
IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25F
cnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBp
biBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1
cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJu
YWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9h
bmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3Rv
cmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFz
a2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNr
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBh
c3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2Vy
dGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlm
aWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIs
IGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5p
bnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBk
YXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2Fu
ZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRl
Wyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
ODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVu
dChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0
IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3Rv
cmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9y
ZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1
ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQo
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVf
bG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0
LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRh
dGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxf
c3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRf
c3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVf
dGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2Rh
dGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDks
IGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0
X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAg
bGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2Nh
bGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9w
YXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3
NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0
IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25F
cnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0
b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVu
dAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9i
dWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxm
LmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAg
ICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVy
biBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xv
bmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNl
bGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9m
ZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0
cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5
IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24u
Y3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vy
c29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBz
ZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
dXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5
cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1
LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdh
cyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3Rv
cmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRl
X2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9z
dG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0
YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rh
c2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAg
IGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNz
ZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRo
ZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9y
ZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVf
aW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEw
MzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3Zl
cnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0
aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAg
c2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAog
ICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWls
ZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRh
dHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2Zl
dGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9h
bGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNv
bXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGlu
ZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29y
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAg
ICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVu
c3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMu
cHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRq
X2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiBy
ZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9n
X2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBp
biBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9z
dG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90
YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0
YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4g
c3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3Rv
cmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFz
awogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEn
XQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYx
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQg
aWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVy
cm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0
IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3Rv
cmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRl
ZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0
aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBf
Z2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29i
aiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBz
ZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBm
b2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1
cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9y
bV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5w
eSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5n
ZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2Vs
Zi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhl
Y3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4g
ZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9
IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5l
Y3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUg
OTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVl
LCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAg
IHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdv
LmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
NjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2Vs
Zi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
dXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRl
X2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0
YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24g
PSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2Zp
bGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rh
c2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zv
cl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3Zl
cnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9y
ZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNr
CiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSdd
CkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdh
cyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3Rv
cmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4
OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1
cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJu
YWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODks
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBk
YXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFs
X3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRp
b24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFz
a2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9t
X3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9u
X2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVy
X3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51
cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVf
YW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3Rh
dGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3Rv
cmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFz
awogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEn
XQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGlu
IHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3Jl
Y2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5
ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZp
bGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRo
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlk
ZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJv
cgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVu
dGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9s
b2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xv
Z19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFz
c2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0
aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZp
ZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0
ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawog
ICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9t
X3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNp
cGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxm
Ll9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGlu
IHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRl
cm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4
OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9l
bnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxm
Lm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdl
ci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2Vs
Zi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAg
c2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIu
ZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwg
aW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNv
ciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nv
bm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxp
bmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UK
ICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGph
bmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3Qg
Y2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9y
ZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQK
ICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVp
bGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5i
cmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAg
YnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4g
Z2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25l
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxm
Ll9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0
Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMg
PSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIs
IGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1
cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNv
cgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2Vs
Zi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0
aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBl
LCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwg
aW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMg
dGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3Jl
X2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rh
c2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAg
IGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNz
ZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50
aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0
YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFz
awogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9m
cm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9y
ZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBz
ZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIs
IGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5p
bnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93
aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2
ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIg
aW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4g
dXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVy
bmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3Jt
YXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQu
dGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9m
cm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJz
aW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xh
eWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRh
dGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxf
c3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9n
X2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZp
ZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2Miwg
aW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmlu
dGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dp
bmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
MzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5m
b3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZl
bnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlv
bl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92
ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0
X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRl
X2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9z
dG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0
YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4
NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9h
bmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3Rv
cmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFz
a2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNr
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBh
c3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2Vy
dGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVf
c3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2lu
Zm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMx
LCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJz
aW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNl
bGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAg
IHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRy
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9t
YW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0
cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRj
aF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxs
CiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21w
aWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUg
ODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAg
Y3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1
cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5
IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9l
eGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVy
YWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmll
ciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2
ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIg
aW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4g
dXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVy
bmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3Jt
YXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQu
dGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9m
cm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJz
aW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xh
eWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2Fu
ZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9y
ZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNr
ZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwg
aW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYy
LCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYu
aW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVw
ZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9h
bmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0
ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0g
c2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNr
ZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3Jf
cGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJz
aW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4
OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1
cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJu
YWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9h
bmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3Rv
cmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFz
a2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
MDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5f
Z2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQog
ICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChs
b2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zv
cl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNz
ZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRp
b25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19l
dmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
NzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2Vy
dCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9u
RXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZl
bnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQg
aWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVy
cm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGlu
IHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rh
c2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJl
Y2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNr
ZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2lu
Zm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0
X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEs
IGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBm
b2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1
cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9y
bV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5w
eSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5n
ZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2Vs
Zi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhl
Y3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4g
ZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9
IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5l
Y3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUg
OTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVl
LCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAg
IHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdv
LmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9s
b2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRp
ZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYy
LCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYu
aW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVw
ZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9h
bmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0
ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0g
c2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNr
ZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3Jf
cGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJz
aW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRl
X2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9z
dG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0
YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4
NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9h
bmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3Rv
cmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFz
a2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNr
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBh
c3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2Vy
dGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVf
c3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2lu
Zm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMx
LCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJz
aW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNl
bGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAg
IHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRy
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9t
YW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0
cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRj
aF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxs
CiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21w
aWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUg
ODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAg
Y3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1
cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5
IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9l
eGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVy
YWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmll
ciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2
ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZl
bnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0
b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0
ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRf
c3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsn
dGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAg
ICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFz
c2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3Rv
cmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBl
X2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92
ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBh
dGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRp
ZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9n
X2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2df
ZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGlu
IHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVw
ZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9h
bmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0
ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9y
ZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNr
CiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSdd
CkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdh
cyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4g
c3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVj
aXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXll
cl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmls
ZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgK
ICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVp
bGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5i
cmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAg
YnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4g
Z2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25l
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxm
Ll9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0
Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMg
PSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIs
IGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1
cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNv
cgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2Vs
Zi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0
aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBl
LCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwg
aW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRl
bnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9y
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNh
dXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVf
bG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAg
ICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxk
CiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJi
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1
aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdl
dGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5f
ZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNo
X2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0g
Y29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBs
aW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJz
b3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IK
ICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYu
ZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGls
cy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwg
ZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGlu
IHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50
aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2
MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxm
LmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVf
aW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUo
ZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1h
dGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXll
cl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBf
Z2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBk
YXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2Fu
ZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRl
Wyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
ODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVu
dChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0
IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3Rv
cmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlk
ZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJv
cgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBz
ZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBm
b2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNr
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNp
cGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2Zp
bGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZv
cm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9s
YXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBp
biBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9n
X2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZp
ZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2Miwg
aW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmlu
dGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dp
bmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
MzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5m
b3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZl
bnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlv
bl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92
ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0
X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRl
X2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9z
dG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0
YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4
NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODks
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5z
dXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5v
cm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3Qg
PSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIu
cHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYu
Z2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNl
bGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4
ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGlu
IGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3Ig
PSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25u
ZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5l
IDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1
ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAg
ICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5n
by5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNh
dXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVf
bG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAg
ICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxk
CiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJi
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1
aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdl
dGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5f
ZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNo
X2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0g
Y29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBs
aW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJz
b3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IK
ICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYu
ZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGls
cy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwg
ZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGlu
IHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRo
ZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9s
b2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9l
bnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAg
ICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2Fy
Z3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0g
bGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9f
CiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1
LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAg
IHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21w
aWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25u
ZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIs
IGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJz
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNv
cgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRq
X2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBs
aW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNr
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBh
c3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2Vy
dGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlm
aWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFy
dGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sK
ICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJv
bV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVj
aXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2Vs
Zi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBp
biB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50
ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
ODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4g
dXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVy
bmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQo
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBz
ZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRh
dGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxf
c3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlv
biA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNr
ZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21f
dGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25f
Zm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJf
dmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9i
dWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dy
YXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5Iiwg
bGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9x
dWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9y
ZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRl
X3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVj
dXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2Vs
Zi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlv
bigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwg
aW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRy
YWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFp
c2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIu
dXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2Miwg
aW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmlu
dGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRh
dGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5k
X3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVb
J3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNl
bGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2Zp
bGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3Bh
dGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lv
bl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rh
c2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAg
IGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNz
ZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRo
ZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9s
b2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9l
bnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAg
ICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2Fy
Z3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0g
bGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9f
CiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1
LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAg
IHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21w
aWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25u
ZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIs
IGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJz
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNv
cgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRq
X2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBs
aW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNr
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBh
c3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2Vy
dGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlm
aWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFy
dGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sK
ICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJv
bV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVj
aXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2Vs
Zi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBp
biB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50
ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0
ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRf
c3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsn
dGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1
ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQo
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVu
dGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9s
b2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRp
ZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3Rh
cnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNr
CiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zy
b21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3Jl
Y2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNl
bGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9i
dWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dy
YXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5Iiwg
bGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9x
dWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9y
ZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRl
X3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVj
dXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2Vs
Zi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlv
bigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwg
aW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRy
YWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFp
c2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIu
dXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19l
dmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVy
IGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGlu
IHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRl
cm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1
NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9y
bWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50
LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25f
ZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVy
c2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9s
YXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9h
bmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3Rv
cmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFz
a2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQs
IGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5k
X3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3Jl
X3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tk
YXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBp
biBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2df
ZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNl
bGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAg
IHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRy
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9t
YW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0
cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRj
aF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxs
CiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21w
aWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUg
ODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAg
Y3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1
cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5
IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9l
eGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVy
YWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19l
dmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4g
c3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBk
YXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2Fu
ZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRl
Wyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3Jl
X3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sK
ICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10K
QXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBz
dG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNp
cGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVy
X3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxl
cGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVu
dGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
NjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2Vs
Zi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBl
X2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxl
KGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3Jt
YXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5
ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4g
X2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVw
ZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9h
bmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0
ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9y
ZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNr
CiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSdd
CkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdh
cyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4g
c3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVj
aXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXll
cl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmls
ZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgK
ICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVp
bGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5i
cmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAg
YnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4g
Z2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25l
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxm
Ll9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0
Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMg
PSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIs
IGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1
cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNv
cgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2Vs
Zi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0
aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBl
LCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwg
aW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRl
bnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9y
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNh
dXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVf
bG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAg
ICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxk
CiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJi
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1
aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdl
dGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5f
ZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNo
X2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0g
Y29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBs
aW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJz
b3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IK
ICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYu
ZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGls
cy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwg
ZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGlu
IHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50
aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2
MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxm
LmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51
cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVf
YW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3Rh
dGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9
IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmls
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFz
a2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9y
X3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVy
c2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3Jl
X3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sK
ICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10K
QXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9y
ZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAg
ICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFz
c2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVu
dGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9z
dGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rh
c2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25f
ZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRf
cmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0g
c2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYy
LCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYu
aW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVw
ZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9h
bmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0
ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9y
ZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNr
CiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSdd
CkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdh
cyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4g
c3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVj
aXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXll
cl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmls
ZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgK
ICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVp
bGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5i
cmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAg
YnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4g
Z2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25l
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxm
Ll9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0
Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMg
PSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIs
IGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1
cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNv
cgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2Vs
Zi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0
aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBl
LCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwg
aW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRl
bnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9y
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNl
bGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZv
bGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3Vy
ZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3Jt
X3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0g
QnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5
IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdl
dF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxm
Ll9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVj
dXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBl
eGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0g
c2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVj
dGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5
OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUs
IHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAg
cmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28u
ZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xv
Z19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAg
c2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAog
ICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWls
ZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRh
dHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2Zl
dGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9h
bGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNv
bXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGlu
ZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29y
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAg
ICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVu
c3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMu
cHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRq
X2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiBy
ZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9n
X2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBp
biBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2df
ZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNl
bGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAg
IHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRy
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9t
YW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0
cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRj
aF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxs
CiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21w
aWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUg
ODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAg
Y3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1
cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5
IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9l
eGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVy
YWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmll
ciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBp
biB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50
ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAz
NTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZv
cm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVu
dC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9u
X2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3Zl
cnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRf
bGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVf
YW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0
b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rh
c2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFz
ayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAg
YXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3Nl
cnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRp
ZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3Rh
cnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNr
CiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zy
b21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3Jl
Y2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNl
bGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9i
dWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dy
YXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5Iiwg
bGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9x
dWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9y
ZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRl
X3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVj
dXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2Vs
Zi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlv
bigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwg
aW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRy
YWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFp
c2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIu
dXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2Miwg
aW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmlu
dGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dp
bmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGlu
IHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRl
cm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRl
X2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9z
dG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0
YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxm
Ll9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxl
CiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRo
KGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25f
Zm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9l
bnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAg
ICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2Fy
Z3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0g
bGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9f
CiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1
LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAg
IHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21w
aWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25u
ZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIs
IGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJz
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNv
cgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRq
X2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBs
aW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNr
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBh
c3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2Vy
dGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9n
X2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNz
ZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRp
b25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmll
ciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRl
ZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAg
ICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21f
dGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lw
ZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYu
X2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4g
dXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVy
bmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQo
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVf
bG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0
LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2Fu
ZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9y
ZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNr
ZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFz
c2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0
aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9z
dGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5m
b3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEs
IGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNp
b25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVy
IGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGlu
IHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRl
cm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1
NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9y
bWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50
LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25f
ZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVy
c2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9s
YXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9h
bmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3Rv
cmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFz
a2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQs
IGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5k
X3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3Jl
X3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tk
YXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNz
ZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRp
b25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmll
ciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRl
ZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAg
ICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21f
dGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lw
ZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYu
X2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4g
dXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVy
bmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVw
ZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5h
bF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2Fu
ZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9y
ZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNr
ZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIw
OSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9n
ZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAg
ICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxv
Y2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9y
X3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3Nl
cnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlv
bkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVy
IGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGlu
IHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRl
cm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1
NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9y
bWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50
LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25f
ZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVy
c2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9s
YXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9h
bmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3Rv
cmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFz
a2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQs
IGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZv
bGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3Vy
ZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3Jt
X3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0g
QnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5
IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdl
dF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxm
Ll9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVj
dXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBl
eGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0g
c2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVj
dGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5
OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUs
IHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAg
cmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28u
ZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2
MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxm
LmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51
cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVf
YW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3Rh
dGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9
IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmls
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFz
a2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9y
X3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVy
c2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3Jl
X3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sK
ICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10K
QXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9y
ZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1
ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQo
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVu
dGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
NjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2Vs
Zi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBl
X2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxl
KGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3Jt
YXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5
ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4g
X2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVw
ZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9h
bmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0
ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2Jq
ZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4g
bWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5h
bWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwg
aW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9
IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4
LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBj
dXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdf
Y3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwog
ICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRo
X3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dp
bmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2Yg
dGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZl
bnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYu
X2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNl
bGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1
ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5h
Z2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihz
ZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9h
bGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAg
ICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxl
ci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4
LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vy
c29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVf
Y29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5Iiwg
bGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNf
dmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlz
ZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpk
amFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBp
biBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1
cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJu
YWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcs
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1h
dGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50
YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zy
b21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNp
b25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5
ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZv
bGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3Vy
ZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3Jt
X3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0g
QnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5
IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdl
dF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxm
Ll9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVj
dXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBl
eGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0g
c2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVj
dGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5
OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUs
IHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAg
cmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28u
ZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2
MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxm
LmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51
cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVf
YW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3Rh
dGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3Rv
cmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFz
awogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEn
XQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGlu
IHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3Jl
Y2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5
ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZp
bGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRo
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlk
ZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJv
cgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVf
bG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFz
ayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAg
YXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3Nl
cnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRp
ZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3Rh
cnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNr
CiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zy
b21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3Jl
Y2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNl
bGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9i
dWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dy
YXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5Iiwg
bGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9x
dWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9y
ZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRl
X3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVj
dXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2Vs
Zi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlv
bigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwg
aW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRy
YWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFp
c2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIu
dXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19l
dmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVy
IGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2Yg
dGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZl
bnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYu
X2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNl
bGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1
ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5h
Z2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihz
ZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9h
bGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAg
ICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxl
ci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4
LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vy
c29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVf
Y29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5Iiwg
bGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNf
dmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlz
ZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpk
amFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBp
biBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1
cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJu
YWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcs
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1h
dGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50
YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zy
b21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNp
b25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5
ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5k
X3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3Jl
X3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tk
YXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBp
biBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIs
IGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5p
bnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBk
YXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2Fu
ZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRl
Wyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBz
ZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tm
aWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9w
YXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNp
b25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAg
ICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFz
c2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVf
bG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFz
ayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAg
YXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3Nl
cnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRp
ZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3Rh
cnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNr
CiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zy
b21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3Jl
Y2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNl
bGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9i
dWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dy
YXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5Iiwg
bGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9x
dWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9y
ZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRl
X3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVj
dXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2Vs
Zi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlv
bigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwg
aW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRy
YWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFp
c2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIu
dXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2Miwg
aW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmlu
dGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRh
dGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5k
X3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVb
J3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVf
dGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawog
ICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpB
c3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMg
dGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0
b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lw
ZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJf
dmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVw
YXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAg
ICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxk
CiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJi
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1
aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdl
dGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5f
ZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNo
X2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0g
Y29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBs
aW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJz
b3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IK
ICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYu
ZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGls
cy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwg
ZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGlu
IHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50
aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xv
Z19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAg
c2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAog
ICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWls
ZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRh
dHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2Zl
dGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9h
bGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNv
bXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGlu
ZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29y
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAg
ICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVu
c3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMu
cHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRq
X2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiBy
ZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9n
X2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBp
biBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2df
ZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNl
bGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAg
IHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRy
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9t
YW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0
cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRj
aF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxs
CiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21w
aWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUg
ODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAg
Y3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1
cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5
IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9l
eGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVy
YWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19l
dmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4g
c3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93
aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2
ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZl
bnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0
b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3Jl
X3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sK
ICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10K
QXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlk
ZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJv
cgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRf
dGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlv
bl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dl
dF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmog
PSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1
cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9y
bV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5w
eSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5n
ZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2Vs
Zi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhl
Y3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4g
ZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9
IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5l
Y3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUg
OTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVl
LCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAg
IHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdv
LmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
NjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2Vs
Zi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9n
X2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2df
ZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGlu
IHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9i
dWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dy
YXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5Iiwg
bGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9x
dWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9y
ZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRl
X3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVj
dXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2Vs
Zi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlv
bigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwg
aW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRy
YWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFp
c2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIu
dXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19l
dmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
c3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2
ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24g
d2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBz
dG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2Jq
ZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4g
bWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5h
bWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwg
aW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9
IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4
LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBj
dXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdf
Y3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwog
ICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRo
X3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dp
bmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2Yg
dGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZl
bnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYu
X2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNl
bGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1
ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5h
Z2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihz
ZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9h
bGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAg
ICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxl
ci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4
LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vy
c29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVf
Y29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5Iiwg
bGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNf
dmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlz
ZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpk
amFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBp
biBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1
cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJu
YWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcs
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1h
dGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50
YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zy
b21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNp
b25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5
ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5k
X3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3Jl
X3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tk
YXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBp
biBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51
cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVf
YW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3Rh
dGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3Rv
cmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFz
awogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEn
XQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGlu
IHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3Jl
Y2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5
ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZp
bGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRo
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlk
ZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJv
cgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBz
ZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRh
dGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxf
c3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlv
biA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNr
ZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21f
dGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25f
Zm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJf
dmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVw
ZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9h
bmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0
ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2Jq
ZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4g
bWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5h
bWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwg
aW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9
IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4
LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBj
dXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdf
Y3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwog
ICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRo
X3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dp
bmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGlu
IHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRl
cm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRl
X2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9z
dG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0
YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxm
Ll9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxl
CiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRo
KGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25f
Zm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9l
bnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAg
ICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2Fy
Z3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0g
bGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9f
CiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1
LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAg
IHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21w
aWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25u
ZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIs
IGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJz
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNv
cgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRq
X2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBs
aW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNr
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBh
c3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2Vy
dGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9n
X2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNz
ZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRp
b25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmll
ciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRl
ZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAg
ICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21f
dGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lw
ZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYu
X2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4g
dXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVy
bmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVf
YW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0
b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rh
c2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYu
X2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUK
ICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgo
bG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9m
b3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFz
c2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0
aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZp
ZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19l
dmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
c3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2
ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24g
d2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBz
dG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2Jq
ZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4g
bWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5h
bWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwg
aW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9
IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4
LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBj
dXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdf
Y3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwog
ICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRo
X3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dp
bmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGlu
IHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRl
cm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRl
X2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9z
dG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0
YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxm
Ll9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxl
CiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRo
KGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25f
Zm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9l
bnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAg
ICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2Fy
Z3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0g
bGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9f
CiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1
LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAg
IHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21w
aWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25u
ZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIs
IGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJz
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNv
cgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRq
X2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBs
aW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNr
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBh
c3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2Vy
dGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlm
aWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIs
IGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5p
bnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93
aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2lu
Zm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2
ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRp
b25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJf
dmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dl
dF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0
ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRf
c3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsn
dGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1
ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQo
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVf
bG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFz
ayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAg
YXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3Nl
cnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRp
ZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3Rh
cnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNr
CiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zy
b21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3Jl
Y2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNl
bGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9i
dWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dy
YXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5Iiwg
bGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9x
dWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9y
ZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRl
X3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVj
dXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2Vs
Zi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlv
bigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwg
aW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRy
YWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFp
c2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIu
dXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19l
dmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
c3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2
ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3
NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0
IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25F
cnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBp
biBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICBy
ZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFz
a2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9p
bmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dl
dF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAx
LCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBk
YXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFs
X3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5k
X3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3Jl
X3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tk
YXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBp
biBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2df
ZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNl
bGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAg
IHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRy
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9t
YW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0
cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRj
aF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxs
CiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21w
aWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUg
ODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAg
Y3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1
cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5
IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9l
eGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVy
YWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19l
dmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
NzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2Vy
dCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9u
RXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIg
aW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRf
dGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAg
cmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rh
c2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVf
aW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9n
ZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAw
MSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVw
ZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5h
bF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBm
b2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1
cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9y
bV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5w
eSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5n
ZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2Vs
Zi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhl
Y3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4g
ZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9
IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5l
Y3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUg
OTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVl
LCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAg
IHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdv
LmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9s
b2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRp
ZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYy
LCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYu
aW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9p
bmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShl
dmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0
aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVy
X3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9n
ZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2Jq
ZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4g
bWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5h
bWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwg
aW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9
IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4
LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBj
dXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdf
Y3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwog
ICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRo
X3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRh
dGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5k
X3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVb
J3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRl
X2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9z
dG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0
YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rh
c2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAg
IGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNz
ZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRo
ZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9y
ZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVf
aW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEw
MzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3Zl
cnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0
aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAg
c2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAog
ICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWls
ZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRh
dHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2Zl
dGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9h
bGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNv
bXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGlu
ZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29y
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAg
ICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVu
c3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMu
cHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRq
X2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiBy
ZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlm
aWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2df
ZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNl
bGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAg
IHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRy
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9t
YW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0
cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRj
aF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxs
CiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21w
aWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUg
ODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAg
Y3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1
cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5
IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9l
eGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVy
YWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmll
ciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBp
biB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50
ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAz
NTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZv
cm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVu
dC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9u
X2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3Zl
cnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRf
bGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVf
YW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0
b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rh
c2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0
LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBm
b2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1
cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9y
bV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5w
eSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5n
ZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2Vs
Zi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhl
Y3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4g
ZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9
IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5l
Y3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUg
OTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVl
LCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAg
IHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdv
LmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9s
b2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRp
ZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYy
LCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYu
aW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9p
bmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShl
dmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0
aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVy
X3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9n
ZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2Jq
ZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4g
bWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5h
bWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwg
aW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9
IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4
LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBj
dXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdf
Y3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwog
ICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRo
X3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRh
dGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5k
X3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVb
J3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRl
X2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9z
dG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0
YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rh
c2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAg
IGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNz
ZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRo
ZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9y
ZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVf
aW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEw
MzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3Zl
cnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0
aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAg
c2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAog
ICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWls
ZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRh
dHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2Zl
dGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9h
bGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNv
bXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGlu
ZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29y
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAg
ICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVu
c3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMu
cHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRq
X2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiBy
ZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9n
X2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBp
biBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9z
dG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90
YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0
YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAz
NjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2Vy
dCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9u
RXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFy
dGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3Jt
YXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGlu
IF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25f
b2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGlu
IHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQo
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBz
ZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBm
b2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1
cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9y
bV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5w
eSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5n
ZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2Vs
Zi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhl
Y3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4g
ZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9
IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5l
Y3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUg
OTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVl
LCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAg
IHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdv
LmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
NjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2Vs
Zi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
dXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRl
X2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0
YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24g
PSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2Zp
bGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rh
c2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zv
cl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3Zl
cnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9y
ZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNr
CiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSdd
CkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdh
cyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3Rv
cmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVf
dGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawog
ICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpB
c3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRl
bnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9y
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNh
dXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVf
c3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90
YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9u
X2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0
X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9
IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3Vy
ZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3Jt
X3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0g
QnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5
IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdl
dF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxm
Ll9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVj
dXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBl
eGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0g
c2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVj
dGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5
OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUs
IHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAg
cmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28u
ZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2
MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxm
LmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIs
IGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5p
bnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBk
YXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2Fu
ZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRl
Wyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBz
ZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tm
aWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9w
YXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNp
b25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAg
ICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFz
c2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVu
dGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
NjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2Vs
Zi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBl
X2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxl
KGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3Jt
YXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5
ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4g
X2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVw
ZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9h
bmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0
ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2Jq
ZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4g
bWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5h
bWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwg
aW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9
IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4
LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBj
dXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdf
Y3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwog
ICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRo
X3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dp
bmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2Yg
dGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZl
bnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYu
X2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNl
bGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1
ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5h
Z2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihz
ZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9h
bGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAg
ICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxl
ci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4
LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vy
c29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVf
Y29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5Iiwg
bGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNf
dmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlz
ZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpk
amFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0
b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVu
dAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9i
dWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxm
LmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAg
ICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVy
biBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xv
bmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNl
bGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9m
ZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0
cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5
IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24u
Y3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vy
c29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBz
ZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
dXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5
cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1
LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdh
cyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3Rv
cmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVf
dGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawog
ICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpB
c3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRl
bnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9y
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNh
dXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVf
c3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90
YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9u
X2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0
X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9
IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3Vy
ZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3Jt
X3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0g
QnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5
IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdl
dF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxm
Ll9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVj
dXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBl
eGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0g
c2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVj
dGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5
OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUs
IHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAg
cmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28u
ZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2
MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxm
LmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51
cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVf
YW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3Rh
dGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3Rv
cmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFz
awogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEn
XQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGlu
IHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3Jl
Y2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5
ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZp
bGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRo
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlk
ZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJv
cgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVf
bG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0
LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRh
dGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxf
c3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRf
c3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVf
dGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2Rh
dGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDks
IGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0
X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAg
bGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2Nh
bGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9w
YXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3
NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0
IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25F
cnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0
b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVu
dAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9i
dWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxm
LmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAg
ICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVy
biBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xv
bmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNl
bGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9m
ZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0
cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5
IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24u
Y3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vy
c29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBz
ZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
dXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5
cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1
LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdh
cyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3Rv
cmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4
OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1
cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJu
YWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9h
bmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3Rv
cmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFz
a2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
MDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5f
Z2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQog
ICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChs
b2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zv
cl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNz
ZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRp
b25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19l
dmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
NzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2Vy
dCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9u
RXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIg
aW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRf
dGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAg
cmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rh
c2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVf
aW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9n
ZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAw
MSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVw
ZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5h
bF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRh
dGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxf
c3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRf
c3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVf
dGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2Rh
dGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDks
IGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0
X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAg
bGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2Nh
bGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9w
YXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3
NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0
IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25F
cnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0
b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVu
dAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9i
dWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxm
LmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAg
ICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVy
biBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xv
bmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNl
bGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9m
ZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0
cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5
IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24u
Y3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vy
c29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBz
ZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
dXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5
cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1
LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdh
cyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3Rv
cmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4
OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1
cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJu
YWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9h
bmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3Rv
cmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFz
a2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
MDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5f
Z2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQog
ICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChs
b2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zv
cl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNz
ZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRp
b25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19l
dmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4g
c3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBk
YXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2Fu
ZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRl
Wyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3Jl
X3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sK
ICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10K
QXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBz
dG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNp
cGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVy
X3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxl
cGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVu
dGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9s
b2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xv
Z19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFz
c2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0
aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZp
ZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0
ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawog
ICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9t
X3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNp
cGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxm
Ll9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGlu
IHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRl
cm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4
OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9l
bnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxm
Lm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdl
ci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2Vs
Zi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAg
c2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIu
ZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwg
aW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNv
ciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nv
bm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxp
bmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UK
ICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGph
bmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3Qg
Y2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9y
ZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQK
ICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVp
bGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5i
cmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAg
YnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4g
Z2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25l
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxm
Ll9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0
Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMg
PSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIs
IGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1
cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNv
cgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2Vs
Zi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0
aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBl
LCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwg
aW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMg
dGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3Jl
X2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4
NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODks
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBk
YXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFs
X3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5k
X3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3Jl
X3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tk
YXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5
LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dl
dF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAg
IGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9j
YWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3Jf
cGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
NzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2Vy
dCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9u
RXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZl
bnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQg
aWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVy
cm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGlu
IHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rh
c2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJl
Y2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNr
ZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2lu
Zm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0
X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEs
IGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBm
b2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1
cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9y
bV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5w
eSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5n
ZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2Vs
Zi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhl
Y3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4g
ZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9
IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5l
Y3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUg
OTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVl
LCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAg
IHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdv
LmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9s
b2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRp
ZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYy
LCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYu
aW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9p
bmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShl
dmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0
aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVy
X3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9n
ZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2Jq
ZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4g
bWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5h
bWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwg
aW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9
IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4
LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBj
dXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdf
Y3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwog
ICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRo
X3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRh
dGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5k
X3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVb
J3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVf
dGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawog
ICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpB
c3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMg
dGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3Jl
X2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4
NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODks
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5z
dXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5v
cm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3Qg
PSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIu
cHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYu
Z2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNl
bGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4
ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGlu
IGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3Ig
PSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25u
ZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5l
IDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1
ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAg
ICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5n
by5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNh
dXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVf
bG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAg
ICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxk
CiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJi
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1
aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdl
dGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5f
ZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNo
X2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0g
Y29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBs
aW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJz
b3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IK
ICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYu
ZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGls
cy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwg
ZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGlu
IHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50
aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2
MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxm
LmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVf
aW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUo
ZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1h
dGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXll
cl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBf
Z2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBk
YXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2Fu
ZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRl
Wyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
ODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVu
dChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGlu
IHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVw
ZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5h
bF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1Nywg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0
aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRh
c2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJv
bV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lv
bl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXll
cl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRf
c3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVf
dGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2Rh
dGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3Nl
cnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlv
bkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVy
IGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2Yg
dGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVk
X3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAg
IHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90
YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBl
X2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5f
Z2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEw
MDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9l
bnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxm
Lm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdl
ci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2Vs
Zi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAg
c2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIu
ZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwg
aW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNv
ciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nv
bm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxp
bmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UK
ICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGph
bmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4g
c2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBk
YXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFs
X3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRp
b24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFz
a2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9t
X3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9u
X2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVy
X3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9z
dG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90
YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0
YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4g
c3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3Rv
cmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFz
awogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEn
XQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYx
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQg
aWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVy
cm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0
IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3Rv
cmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRl
ZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0
aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBf
Z2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29i
aiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBz
ZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBm
b2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1
cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9y
bV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5w
eSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5n
ZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2Vs
Zi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhl
Y3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4g
ZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9
IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5l
Y3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUg
OTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVl
LCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAg
IHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdv
LmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
NjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2Vs
Zi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYy
LCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYu
aW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVw
ZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9h
bmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0
ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0g
c2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNr
ZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3Jf
cGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJz
aW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVf
dGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawog
ICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpB
c3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRl
bnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9y
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNh
dXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVf
c3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90
YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9u
X2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0
X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9
IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3Vy
ZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3Jt
X3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0g
QnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5
IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdl
dF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxm
Ll9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVj
dXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBl
eGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0g
c2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVj
dGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5
OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUs
IHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAg
cmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28u
ZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2
MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxm
LmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2df
ZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNl
bGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAg
IHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRy
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9t
YW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0
cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRj
aF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxs
CiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21w
aWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUg
ODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAg
Y3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1
cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5
IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9l
eGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVy
YWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19l
dmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
NzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2Vy
dCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9u
RXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZl
bnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQg
aWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVy
cm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0
IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3Rv
cmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlk
ZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJv
cgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRf
dGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlv
bl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dl
dF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmog
PSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1
cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9y
bV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5w
eSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5n
ZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2Vs
Zi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhl
Y3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4g
ZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9
IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5l
Y3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUg
OTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVl
LCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAg
IHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdv
LmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9s
b2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xv
Z19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFz
c2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0
aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZp
ZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0
ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawog
ICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9t
X3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNp
cGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxm
Ll9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGlu
IHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRl
cm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4
OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1
cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJu
YWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODks
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBk
YXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFs
X3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5k
X3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3Jl
X3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tk
YXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5
LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dl
dF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAg
IGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9j
YWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3Jf
cGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4g
c3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3Rv
cmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFz
awogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEn
XQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0
b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3Jl
X3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sK
ICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10K
QXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlk
ZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJv
cgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRf
dGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlv
bl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dl
dF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmog
PSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1
cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9y
bV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5w
eSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5n
ZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2Vs
Zi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhl
Y3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4g
ZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9
IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5l
Y3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUg
OTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVl
LCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAg
IHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdv
LmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
NjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2Vs
Zi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYy
LCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYu
aW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVw
ZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9h
bmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0
ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0g
c2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNr
ZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3Jf
cGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJz
aW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVf
dGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawog
ICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpB
c3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRl
bnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9y
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNl
bGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZv
bGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lw
ZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmls
ZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9y
bWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xh
eWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGlu
IF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIs
IGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5p
bnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBk
YXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2Fu
ZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRl
Wyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBz
ZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tm
aWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9w
YXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNp
b25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAg
ICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFz
c2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVu
dGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
NjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2Vs
Zi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBl
X2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxl
KGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3Jt
YXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5
ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4g
X2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVw
ZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9h
bmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0
ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2Jq
ZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4g
bWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5h
bWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwg
aW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9
IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4
LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBj
dXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdf
Y3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwog
ICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRo
X3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRh
dGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5k
X3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVb
J3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4
OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9l
bnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxm
Lm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdl
ci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2Vs
Zi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAg
c2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIu
ZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwg
aW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNv
ciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nv
bm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxp
bmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UK
ICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGph
bmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4g
c2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBk
YXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFs
X3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRp
b24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFz
a2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9t
X3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9u
X2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVy
X3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2df
ZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNl
bGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAg
IHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRy
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9t
YW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0
cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRj
aF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxs
CiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21w
aWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUg
ODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAg
Y3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1
cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5
IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9l
eGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVy
YWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19l
dmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
NzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2Vy
dCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9u
RXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIg
aW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRf
dGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAg
cmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rh
c2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVf
aW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9n
ZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAw
MSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQo
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVu
dGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9s
b2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRp
ZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYy
LCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYu
aW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9p
bmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShl
dmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0
aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVy
X3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9n
ZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2Jq
ZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4g
bWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5h
bWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwg
aW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9
IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4
LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBj
dXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdf
Y3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwog
ICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRo
X3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRh
dGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5k
X3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVb
J3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4
OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1
cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJu
YWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODks
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5z
dXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5v
cm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3Qg
PSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIu
cHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYu
Z2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNl
bGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4
ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGlu
IGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3Ig
PSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25u
ZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5l
IDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1
ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAg
ICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5n
by5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNl
bGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0
ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9z
dGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9u
ID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tm
aWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90
YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9m
b3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92
ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBk
YXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2Fu
ZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRl
Wyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
ODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVu
dChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0
IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3Rv
cmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9y
ZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1
ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQo
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBz
ZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRh
dGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxf
c3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlv
biA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNr
ZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21f
dGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25f
Zm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJf
dmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0
b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rh
c2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRh
J10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2
MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0
IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25F
cnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0
b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0
ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1h
dGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4g
X2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9v
YmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9l
bnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxm
Lm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdl
ci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2Vs
Zi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAg
c2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIu
ZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwg
aW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNv
ciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nv
bm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxp
bmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UK
ICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGph
bmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4g
c2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5z
dXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5v
cm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3Qg
PSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIu
cHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYu
Z2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNl
bGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4
ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGlu
IGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3Ig
PSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25u
ZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5l
IDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1
ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAg
ICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5n
by5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNl
bGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZv
bGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3Vy
ZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3Jt
X3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0g
QnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5
IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdl
dF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxm
Ll9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVj
dXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBl
eGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0g
c2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVj
dGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5
OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUs
IHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAg
cmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28u
ZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2
MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxm
LmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51
cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVf
YW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3Rh
dGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9
IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmls
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFz
a2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9y
X3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVy
c2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0
ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRf
c3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsn
dGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAg
ICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFz
c2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3Rv
cmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBl
X2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92
ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBh
dGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRp
ZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYy
LCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYu
aW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVw
ZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9h
bmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0
ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0g
c2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNr
ZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3Jf
cGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJz
aW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVf
dGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawog
ICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpB
c3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMg
dGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3Jl
X2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rh
c2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAg
IGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNz
ZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50
aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0
YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFz
awogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9m
cm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9y
ZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBz
ZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIs
IGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5p
bnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93
aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBp
biB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50
ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
ODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVu
dChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0
IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3Rv
cmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9y
ZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1
ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQo
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVf
bG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0
LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2Fu
ZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9y
ZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNr
ZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFz
c2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0
aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9z
dGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5m
b3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEs
IGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNp
b25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVy
IGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2Yg
dGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZl
bnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYu
X2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNl
bGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1
ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5h
Z2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihz
ZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9h
bGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAg
ICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxl
ci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4
LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vy
c29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVf
Y29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5Iiwg
bGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNf
dmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlz
ZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpk
amFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0
b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVu
dAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9i
dWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxm
LmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAg
ICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVy
biBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xv
bmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNl
bGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9m
ZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0
cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5
IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24u
Y3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vy
c29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBz
ZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
dXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5
cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1
LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdh
cyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3Rv
cmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4
OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1
cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJu
YWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9h
bmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3Rv
cmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFz
a2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
MDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5f
Z2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQog
ICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChs
b2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zv
cl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNz
ZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRp
b25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19l
dmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4g
c3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBk
YXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2Fu
ZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRl
Wyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3Jl
X3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sK
ICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10K
QXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBz
dG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNp
cGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVy
X3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxl
cGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVu
dGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9s
b2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRp
ZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYy
LCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYu
aW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9p
bmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShl
dmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0
aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVy
X3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9n
ZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2Jq
ZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4g
bWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5h
bWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwg
aW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9
IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4
LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBj
dXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdf
Y3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwog
ICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRo
X3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRh
dGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5k
X3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVb
J3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRl
X2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9z
dG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0
YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rh
c2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAg
IGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNz
ZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRo
ZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9y
ZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVf
aW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEw
MzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3Zl
cnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0
aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAg
c2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAog
ICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWls
ZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRh
dHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2Zl
dGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9h
bGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNv
bXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGlu
ZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29y
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAg
ICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVu
c3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMu
cHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRq
X2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiBy
ZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlm
aWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2df
ZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNl
bGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAg
IHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRy
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9t
YW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0
cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRj
aF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxs
CiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21w
aWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUg
ODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAg
Y3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1
cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5
IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9l
eGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVy
YWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19l
dmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4g
c3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBk
YXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2Fu
ZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRl
Wyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3Jl
X3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sK
ICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10K
QXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBz
dG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNp
cGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVy
X3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxl
cGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVu
dGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9s
b2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xv
Z19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFz
c2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0
aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZp
ZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0
ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawog
ICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9t
X3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNp
cGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxm
Ll9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGlu
IHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRl
cm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4
OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1
cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJu
YWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9h
bmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3Rv
cmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFz
a2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
MDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5f
Z2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQog
ICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChs
b2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zv
cl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNz
ZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRp
b25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19l
dmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4g
c3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93
aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBp
biB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50
ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0
ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRf
c3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsn
dGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2Vs
Zi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmls
ZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0
aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9u
X2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFz
ayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAg
YXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3Nl
cnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xv
Z19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFz
c2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0
aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZp
ZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0
ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawog
ICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9t
X3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNp
cGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxm
Ll9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGlu
IHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRl
cm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4
OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1
cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJu
YWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9h
bmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3Rv
cmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFz
a2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
MDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5f
Z2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQog
ICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChs
b2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zv
cl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNz
ZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRp
b25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19l
dmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4g
c3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93
aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2
ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZl
bnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQg
aWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVy
cm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGlu
IHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rh
c2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJl
Y2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNr
ZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2lu
Zm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0
X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEs
IGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRh
dGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxf
c3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRf
c3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVf
dGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2Rh
dGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDks
IGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0
X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAg
bGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2Nh
bGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9w
YXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24g
d2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBz
dG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9y
ZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNr
CiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSdd
CkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQs
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBp
ZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJy
b3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3Qg
Y2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9y
ZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQK
ICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVp
bGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5i
cmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAg
YnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4g
Z2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25l
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxm
Ll9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0
Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMg
PSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIs
IGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1
cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNv
cgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2Vs
Zi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0
aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBl
LCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwg
aW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMg
dGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3Jl
X2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4
NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9h
bmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3Rv
cmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFz
a2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNr
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBh
c3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2Vy
dGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVf
c3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2lu
Zm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMx
LCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJz
aW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNl
bGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAg
IHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRy
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9t
YW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0
cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRj
aF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxs
CiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21w
aWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUg
ODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAg
Y3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1
cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5
IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9l
eGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVy
YWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmll
ciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2
ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZl
bnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQg
aWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVy
cm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGlu
IHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rh
c2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJl
Y2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNr
ZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2lu
Zm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0
X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEs
IGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRh
dGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxf
c3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9n
X2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2df
ZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3Nl
cnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlv
bkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVy
IGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2Yg
dGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVk
X3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAg
IHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90
YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBl
X2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5f
Z2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEw
MDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9l
bnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxm
Lm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdl
ci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2Vs
Zi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAg
c2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIu
ZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwg
aW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNv
ciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nv
bm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxp
bmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UK
ICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGph
bmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3Qg
Y2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9y
ZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQK
ICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVp
bGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5i
cmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAg
YnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4g
Z2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25l
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxm
Ll9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0
Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMg
PSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIs
IGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1
cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNv
cgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2Vs
Zi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0
aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBl
LCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwg
aW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRl
bnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9y
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNl
bGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0
ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9z
dGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9u
ID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tm
aWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90
YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9m
b3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92
ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBk
YXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2Fu
ZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRl
Wyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
ODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4g
dXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVy
bmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVf
YW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0
b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rh
c2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYu
X2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUK
ICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgo
bG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9m
b3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwg
aW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRf
c3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVf
dGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2Rh
dGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGlu
IHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0
b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rh
c2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRh
J10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2
MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0
IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25F
cnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0
b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0
ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1h
dGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4g
X2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9v
YmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9l
bnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxm
Lm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdl
ci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2Vs
Zi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAg
c2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIu
ZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwg
aW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNv
ciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nv
bm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxp
bmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UK
ICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGph
bmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4g
c2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5z
dXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5v
cm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3Qg
PSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIu
cHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYu
Z2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNl
bGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4
ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGlu
IGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3Ig
PSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25u
ZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5l
IDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1
ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAg
ICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5n
by5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNh
dXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVf
bG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAg
ICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxk
CiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJi
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1
aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdl
dGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5f
ZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNo
X2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0g
Y29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBs
aW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJz
b3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IK
ICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYu
ZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGls
cy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwg
ZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGlu
IHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRo
ZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9s
b2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9l
bnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAg
ICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2Fy
Z3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0g
bGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9f
CiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1
LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAg
IHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21w
aWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25u
ZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIs
IGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJz
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNv
cgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRq
X2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBs
aW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQs
IGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5k
X3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3Jl
X3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tk
YXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNz
ZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRp
b25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0
YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZv
cm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwg
aW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lv
bl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIg
aW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVu
dChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0
IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3Rv
cmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9y
ZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAg
ICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFz
c2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVu
dGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9z
dGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rh
c2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25f
ZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRf
cmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0g
c2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYy
LCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYu
aW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9i
dWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dy
YXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5Iiwg
bGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9x
dWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9y
ZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRl
X3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVj
dXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2Vs
Zi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlv
bigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwg
aW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRy
YWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFp
c2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIu
dXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19l
dmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
c3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2
ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3
NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0
IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25F
cnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBp
biBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICBy
ZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFz
a2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9p
bmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dl
dF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAx
LCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBk
YXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFs
X3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZv
bGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3Vy
ZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3Jt
X3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0g
QnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5
IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdl
dF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxm
Ll9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVj
dXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBl
eGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0g
c2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVj
dGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5
OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUs
IHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAg
cmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28u
ZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xv
Z19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAg
c2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAog
ICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWls
ZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRh
dHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2Zl
dGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9h
bGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNv
bXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGlu
ZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29y
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAg
ICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVu
c3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMu
cHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRq
X2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiBy
ZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlm
aWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIs
IGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5p
bnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93
aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2lu
Zm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2
ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRp
b25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJf
dmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dl
dF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0
ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRf
c3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsn
dGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1
ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVf
YW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0
b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rh
c2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFz
ayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAg
YXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3Nl
cnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3Jl
X3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9p
bmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAz
MSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVy
c2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZp
ZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19l
dmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVy
IGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGlu
IHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRl
cm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1
NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9y
bWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50
LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25f
ZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVy
c2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9s
YXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9h
bmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3Rv
cmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFz
a2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQs
IGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5k
X3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3Jl
X3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tk
YXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNz
ZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRp
b25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0
YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZv
cm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwg
aW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lv
bl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIg
aW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVu
dChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGlu
IHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVw
ZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5h
bF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1Nywg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0
aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRh
c2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJv
bV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lv
bl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXll
cl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
dXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRl
X2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0
YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9i
dWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dy
YXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5Iiwg
bGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9x
dWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9y
ZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRl
X3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVj
dXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2Vs
Zi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlv
bigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwg
aW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRy
YWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFp
c2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIu
dXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19l
dmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
c3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2
ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3
NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0
IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25F
cnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBp
biBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICBy
ZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFz
a2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9p
bmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dl
dF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAx
LCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBk
YXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFs
X3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZv
bGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3Vy
ZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3Jt
X3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0g
QnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5
IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdl
dF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxm
Ll9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVj
dXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBl
eGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0g
c2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVj
dGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5
OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUs
IHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAg
cmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28u
ZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xv
Z19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAg
c2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAog
ICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWls
ZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRh
dHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2Zl
dGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9h
bGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNv
bXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGlu
ZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29y
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAg
ICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVu
c3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMu
cHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRq
X2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiBy
ZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9n
X2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNz
ZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRp
b25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmll
ciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRl
ZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAg
ICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21f
dGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lw
ZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYu
X2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4g
dXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVy
bmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQo
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBz
ZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRh
dGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxf
c3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlv
biA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNr
ZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21f
dGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25f
Zm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJf
dmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0
b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rh
c2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRh
J10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24g
d2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBz
dG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9y
ZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNr
CiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSdd
CkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEs
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBp
ZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJy
b3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3Qg
Y2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9y
ZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQK
ICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVp
bGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5i
cmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAg
YnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4g
Z2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25l
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxm
Ll9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0
Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMg
PSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIs
IGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1
cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNv
cgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2Vs
Zi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0
aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBl
LCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwg
aW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMg
dGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0
b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lw
ZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJf
dmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVw
YXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAg
ICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxk
CiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJi
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1
aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdl
dGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5f
ZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNo
X2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0g
Y29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBs
aW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJz
b3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IK
ICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYu
ZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGls
cy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwg
ZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGlu
IHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50
aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xv
Z19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAg
c2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAog
ICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWls
ZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRh
dHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2Zl
dGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9h
bGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNv
bXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGlu
ZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29y
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAg
ICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVu
c3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMu
cHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRq
X2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiBy
ZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlm
aWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIs
IGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5p
bnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93
aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2lu
Zm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2
ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRp
b25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJf
dmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dl
dF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0
ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRf
c3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsn
dGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1
ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVf
YW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0
b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rh
c2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFz
ayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAg
YXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3Nl
cnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3Jl
X3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9p
bmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAz
MSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVy
c2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZp
ZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19l
dmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
c3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2
ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24g
d2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBz
dG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2Jq
ZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4g
bWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5h
bWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwg
aW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9
IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4
LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBj
dXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdf
Y3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwog
ICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRo
X3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRh
dGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5k
X3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVb
J3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVf
dGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawog
ICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpB
c3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMg
dGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0
b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lw
ZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJf
dmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVw
YXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAg
ICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxk
CiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJi
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1
aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdl
dGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5f
ZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNo
X2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0g
Y29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBs
aW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJz
b3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IK
ICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYu
ZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGls
cy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwg
ZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGlu
IHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50
aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xv
Z19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAg
c2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAog
ICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWls
ZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRh
dHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2Zl
dGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9h
bGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNv
bXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGlu
ZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29y
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAg
ICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVu
c3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMu
cHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRq
X2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiBy
ZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9n
X2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBp
biBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2df
ZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNl
bGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAg
IHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRy
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9t
YW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0
cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRj
aF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxs
CiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21w
aWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUg
ODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAg
Y3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1
cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5
IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9l
eGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVy
YWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmll
ciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBp
biB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50
ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAz
NTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZv
cm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVu
dC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9u
X2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3Zl
cnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRf
bGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVf
YW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0
b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rh
c2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0
LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRh
dGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxf
c3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRf
c3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVf
dGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2Rh
dGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDks
IGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0
X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAg
bGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2Nh
bGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9w
YXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24g
d2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBz
dG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9y
ZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNr
CiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSdd
CkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdh
cyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3Rv
cmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVf
dGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawog
ICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpB
c3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRl
bnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9y
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNh
dXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVf
c3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90
YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9u
X2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0
X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9
IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3Vy
ZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3Jt
X3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0g
QnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5
IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdl
dF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxm
Ll9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVj
dXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBl
eGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0g
c2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVj
dGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5
OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUs
IHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAg
cmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28u
ZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2
MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxm
LmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIs
IGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5p
bnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBk
YXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2Fu
ZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRl
Wyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBz
ZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tm
aWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9w
YXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNp
b25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAg
ICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFz
c2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVf
bG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0
LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBm
b2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1
cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9y
bV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5w
eSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5n
ZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2Vs
Zi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhl
Y3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4g
ZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9
IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5l
Y3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUg
OTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVl
LCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAg
IHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdv
LmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9s
b2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xv
Z19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFz
c2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0
aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZp
ZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0
ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawog
ICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9t
X3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNp
cGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxm
Ll9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGlu
IHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRl
cm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRl
X2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9z
dG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0
YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxm
Ll9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxl
CiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRo
KGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25f
Zm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9l
bnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAg
ICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2Fy
Z3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0g
bGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9f
CiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1
LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAg
IHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21w
aWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25u
ZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIs
IGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJz
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNv
cgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRq
X2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBs
aW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNr
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBh
c3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2Vy
dGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlm
aWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2df
ZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNl
bGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAg
IHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRy
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9t
YW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0
cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRj
aF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxs
CiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21w
aWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUg
ODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAg
Y3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1
cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5
IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9l
eGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVy
YWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmll
ciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBp
biB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50
ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAz
NTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZv
cm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVu
dC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9u
X2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3Zl
cnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRf
bGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVf
YW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0
b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rh
c2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0
LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2Fu
ZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9y
ZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNr
ZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFz
c2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0
aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9z
dGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5m
b3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEs
IGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNp
b25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
c3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2
ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3
NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0
IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25F
cnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0
b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVu
dAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9i
dWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxm
LmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAg
ICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVy
biBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xv
bmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNl
bGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9m
ZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0
cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5
IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24u
Y3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vy
c29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBz
ZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
dXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5
cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1
LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQs
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBp
ZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJy
b3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4g
c2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFz
ayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVj
aXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tm
aWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5m
b3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRf
bGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwg
aW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0
ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9z
dGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51
cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVf
YW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3Rh
dGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3Rv
cmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFz
awogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEn
XQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGlu
IHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3Jl
Y2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5
ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZp
bGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRo
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlk
ZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJv
cgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVf
bG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0
LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRh
dGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxf
c3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRf
c3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVf
dGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2Rh
dGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDks
IGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0
X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAg
bGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2Nh
bGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9w
YXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3
NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0
IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25F
cnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0
b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVu
dAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9i
dWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxm
LmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAg
ICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVy
biBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xv
bmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNl
bGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9m
ZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0
cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5
IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24u
Y3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vy
c29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBz
ZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
dXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5
cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1
LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdh
cyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3Rv
cmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4
OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1
cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJu
YWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9h
bmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3Rv
cmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFz
a2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
MDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5f
Z2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQog
ICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChs
b2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zv
cl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNz
ZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRp
b25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19l
dmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4g
c3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93
aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBp
biB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50
ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0
ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRf
c3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsn
dGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2Vs
Zi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmls
ZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0
aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9u
X2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFz
ayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAg
YXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3Nl
cnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xv
Z19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFz
c2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0
aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZp
ZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0
ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawog
ICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9t
X3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNp
cGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxm
Ll9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGlu
IHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRl
cm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4
OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1
cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJu
YWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9h
bmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3Rv
cmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFz
a2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
MDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5f
Z2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQog
ICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChs
b2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zv
cl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNz
ZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRp
b25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19l
dmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4g
c3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93
aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBp
biB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50
ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0
ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRf
c3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsn
dGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2Vs
Zi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmls
ZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0
aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9u
X2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0
LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2Fu
ZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9y
ZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNr
ZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwg
aW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9n
X2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2df
ZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3Nl
cnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlv
bkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVy
IGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2Yg
dGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVk
X3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAg
IHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90
YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBl
X2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5f
Z2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEw
MDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1
cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJu
YWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODks
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5z
dXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5v
cm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3Qg
PSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIu
cHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYu
Z2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNl
bGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4
ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGlu
IGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3Ig
PSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25u
ZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5l
IDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1
ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAg
ICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5n
by5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNh
dXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVf
bG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAg
ICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxk
CiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJi
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1
aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdl
dGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5f
ZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNo
X2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0g
Y29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBs
aW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJz
b3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IK
ICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYu
ZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGls
cy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwg
ZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGlu
IHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRo
ZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9s
b2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9l
bnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAg
ICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2Fy
Z3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0g
bGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9f
CiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1
LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAg
IHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21w
aWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25u
ZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIs
IGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJz
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNv
cgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRq
X2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBs
aW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQs
IGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5k
X3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3Jl
X3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tk
YXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNz
ZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRp
b25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0
YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZv
cm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwg
aW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lv
bl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIg
aW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVu
dChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0
IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3Rv
cmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9y
ZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAg
ICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFz
c2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVu
dGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9z
dGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rh
c2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25f
ZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRf
cmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0g
c2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYy
LCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYu
aW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9i
dWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dy
YXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5Iiwg
bGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9x
dWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9y
ZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRl
X3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVj
dXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2Vs
Zi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlv
bigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwg
aW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRy
YWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFp
c2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIu
dXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2Miwg
aW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmlu
dGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRh
dGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5k
X3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVb
J3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNl
bGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2Zp
bGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3Bh
dGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lv
bl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rh
c2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAg
IGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNz
ZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRo
ZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9s
b2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9l
bnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAg
ICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2Fy
Z3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0g
bGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9f
CiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1
LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAg
IHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21w
aWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25u
ZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIs
IGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJz
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNv
cgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRq
X2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBs
aW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQs
IGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZv
bGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3Vy
ZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3Jt
X3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0g
QnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5
IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdl
dF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxm
Ll9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVj
dXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBl
eGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0g
c2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVj
dGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5
OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUs
IHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAg
cmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28u
ZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2
MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxm
LmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51
cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVf
YW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3Rh
dGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9
IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmls
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFz
a2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9y
X3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVy
c2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3Jl
X3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sK
ICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10K
QXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlk
ZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJv
cgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBz
ZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBm
b2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNr
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNp
cGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2Zp
bGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZv
cm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9s
YXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBp
biBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
dXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRl
X2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0
YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9i
dWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dy
YXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5Iiwg
bGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9x
dWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9y
ZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRl
X3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVj
dXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2Vs
Zi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlv
bigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwg
aW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRy
YWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFp
c2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIu
dXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19l
dmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
c3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2
ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3
NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0
IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25F
cnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBp
biBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICBy
ZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFz
a2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9p
bmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dl
dF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAx
LCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBk
YXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFs
X3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZv
bGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3Vy
ZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3Jt
X3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0g
QnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5
IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdl
dF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxm
Ll9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVj
dXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBl
eGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0g
c2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVj
dGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5
OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUs
IHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAg
cmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28u
ZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xv
Z19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAg
c2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAog
ICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWls
ZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRh
dHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2Zl
dGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9h
bGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNv
bXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGlu
ZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29y
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAg
ICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVu
c3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMu
cHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRq
X2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiBy
ZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlm
aWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIs
IGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5p
bnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93
aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2lu
Zm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2
ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRp
b25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJf
dmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dl
dF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0
ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRf
c3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsn
dGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1
ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVw
ZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5h
bF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2Fu
ZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9y
ZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNr
ZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIw
OSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9n
ZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAg
ICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxv
Y2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9y
X3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGlu
IHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVw
ZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9h
bmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0
ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2Jq
ZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4g
bWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5h
bWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwg
aW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9
IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4
LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBj
dXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdf
Y3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwog
ICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRo
X3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dp
bmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGlu
IHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRl
cm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRl
X2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9z
dG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0
YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxm
Ll9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxl
CiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRo
KGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25f
Zm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9l
bnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAg
ICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2Fy
Z3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0g
bGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9f
CiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1
LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAg
IHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21w
aWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25u
ZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIs
IGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJz
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNv
cgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRq
X2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBs
aW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNr
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBh
c3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2Vy
dGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9n
X2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBp
biBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51
cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVf
YW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3Rh
dGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3Rv
cmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFz
awogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEn
XQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGlu
IHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3Jl
Y2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5
ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZp
bGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRo
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlk
ZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJv
cgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVf
bG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0
LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2Fu
ZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9y
ZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNr
ZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFz
c2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0
aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZp
ZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0
ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawog
ICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9t
X3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNp
cGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxm
Ll9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGlu
IHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRl
cm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1
NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9y
bWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50
LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25f
ZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVy
c2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9s
YXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9h
bmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3Rv
cmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFz
a2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNr
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBh
c3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2Vy
dGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9n
X2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBp
biBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9z
dG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90
YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0
YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAz
NjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2Vy
dCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9u
RXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFy
dGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3Jt
YXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGlu
IF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25f
b2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGlu
IHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVw
ZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5h
bF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2Fu
ZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9y
ZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNr
ZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIw
OSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9n
ZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAg
ICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxv
Y2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9y
X3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGlu
IHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9i
dWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dy
YXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5Iiwg
bGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9x
dWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9y
ZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRl
X3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVj
dXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2Vs
Zi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlv
bigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwg
aW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRy
YWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFp
c2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIu
dXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19l
dmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVy
IGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGlu
IHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRl
cm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRl
X2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9z
dG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0
YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxm
Ll9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxl
CiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRo
KGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25f
Zm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9l
bnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAg
ICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2Fy
Z3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0g
bGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9f
CiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1
LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAg
IHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21w
aWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25u
ZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIs
IGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJz
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNv
cgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRq
X2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBs
aW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQs
IGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5k
X3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3Jl
X3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tk
YXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBp
biBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9z
dG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90
YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0
YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAz
NjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2Vy
dCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9u
RXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFy
dGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3Jt
YXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGlu
IF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25f
b2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGlu
IHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQo
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVu
dGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9s
b2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRp
ZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3Rh
cnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNr
CiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zy
b21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3Jl
Y2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNl
bGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9i
dWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dy
YXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5Iiwg
bGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9x
dWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9y
ZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRl
X3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVj
dXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2Vs
Zi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlv
bigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwg
aW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRy
YWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFp
c2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIu
dXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19l
dmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
c3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2
ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24g
d2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBz
dG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2Jq
ZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4g
bWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5h
bWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwg
aW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9
IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4
LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBj
dXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdf
Y3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwog
ICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRo
X3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dp
bmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2Yg
dGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZl
bnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYu
X2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNl
bGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1
ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5h
Z2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihz
ZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9h
bGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAg
ICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxl
ci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4
LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vy
c29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVf
Y29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5Iiwg
bGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNf
dmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlz
ZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpk
amFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0
b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVu
dAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9i
dWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxm
LmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAg
ICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVy
biBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xv
bmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNl
bGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9m
ZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0
cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5
IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24u
Y3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vy
c29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBz
ZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
dXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5
cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1
LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQs
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBp
ZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJy
b3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4g
c2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFz
ayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVj
aXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tm
aWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5m
b3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRf
bGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwg
aW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0
ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9z
dGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9z
dG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90
YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0
YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAz
NjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2Vy
dCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9u
RXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFy
dGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3Jt
YXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGlu
IF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25f
b2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGlu
IHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQo
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBz
ZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBm
b2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1
cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9y
bV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5w
eSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5n
ZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2Vs
Zi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhl
Y3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4g
ZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9
IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5l
Y3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUg
OTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVl
LCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAg
IHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdv
LmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9s
b2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xv
Z19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwg
aW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYy
LCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYu
aW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVw
ZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9h
bmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0
ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0g
c2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNr
ZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3Jf
cGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJz
aW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRl
X2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9z
dG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0
YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4
NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODks
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5z
dXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5v
cm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3Qg
PSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIu
cHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYu
Z2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNl
bGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4
ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGlu
IGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3Ig
PSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25u
ZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5l
IDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1
ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAg
ICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5n
by5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNl
bGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0
ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9z
dGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9u
ID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tm
aWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90
YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9m
b3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92
ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBk
YXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2Fu
ZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRl
Wyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
ODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVu
dChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0
IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3Rv
cmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9y
ZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1
ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQo
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVf
bG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFz
ayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAg
YXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3Nl
cnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRp
ZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3Rh
cnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNr
CiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zy
b21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3Jl
Y2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNl
bGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9i
dWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dy
YXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5Iiwg
bGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9x
dWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9y
ZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRl
X3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVj
dXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2Vs
Zi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlv
bigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwg
aW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRy
YWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFp
c2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIu
dXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19l
dmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
c3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2
ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24g
d2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBz
dG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2Jq
ZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4g
bWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5h
bWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwg
aW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9
IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4
LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBj
dXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdf
Y3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwog
ICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRo
X3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dp
bmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2Yg
dGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZl
bnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYu
X2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNl
bGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1
ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5h
Z2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihz
ZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9h
bGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAg
ICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxl
ci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4
LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vy
c29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVf
Y29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5Iiwg
bGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNf
dmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlz
ZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpk
amFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBp
biBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9l
bnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxm
Lm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdl
ci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2Vs
Zi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAg
c2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIu
ZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwg
aW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNv
ciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nv
bm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxp
bmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UK
ICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGph
bmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3Qg
Y2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9y
ZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQK
ICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVp
bGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5i
cmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAg
YnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4g
Z2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25l
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxm
Ll9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0
Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMg
PSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIs
IGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1
cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNv
cgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2Vs
Zi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0
aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBl
LCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwg
aW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMg
dGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3Jl
X2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4
NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODks
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5z
dXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5v
cm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3Qg
PSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIu
cHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYu
Z2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNl
bGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4
ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGlu
IGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3Ig
PSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25u
ZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5l
IDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1
ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAg
ICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5n
by5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNh
dXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVf
bG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAg
ICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxk
CiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJi
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1
aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdl
dGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5f
ZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNo
X2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0g
Y29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBs
aW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJz
b3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IK
ICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYu
ZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGls
cy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwg
ZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGlu
IHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRo
ZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9s
b2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9l
bnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAg
ICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2Fy
Z3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0g
bGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9f
CiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1
LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAg
IHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21w
aWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25u
ZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIs
IGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJz
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNv
cgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRq
X2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBs
aW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQs
IGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZv
bGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3Vy
ZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3Jt
X3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0g
QnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5
IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdl
dF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxm
Ll9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVj
dXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBl
eGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0g
c2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVj
dGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5
OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUs
IHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAg
cmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28u
ZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xv
Z19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAg
c2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAog
ICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWls
ZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRh
dHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2Zl
dGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9h
bGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNv
bXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGlu
ZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29y
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAg
ICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVu
c3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMu
cHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRq
X2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiBy
ZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9n
X2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBp
biBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9z
dG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90
YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0
YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAz
NjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2Vy
dCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9u
RXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFy
dGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3Jt
YXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGlu
IF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25f
b2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGlu
IHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQo
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVf
bG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0
LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBm
b2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1
cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9y
bV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5w
eSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5n
ZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2Vs
Zi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhl
Y3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4g
ZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9
IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5l
Y3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUg
OTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVl
LCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAg
IHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdv
LmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9s
b2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xv
Z19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwg
aW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9n
X2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2df
ZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGlu
IHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9i
dWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dy
YXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5Iiwg
bGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9x
dWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9y
ZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRl
X3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVj
dXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2Vs
Zi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlv
bigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwg
aW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRy
YWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFp
c2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIu
dXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19l
dmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVy
IGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGlu
IHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRl
cm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1
NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9y
bWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50
LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25f
ZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVy
c2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9s
YXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODks
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBk
YXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFs
X3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZv
bGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3Vy
ZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3Jt
X3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0g
QnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5
IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdl
dF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxm
Ll9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVj
dXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBl
eGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0g
c2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVj
dGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5
OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUs
IHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAg
cmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28u
ZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xv
Z19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAg
c2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAog
ICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWls
ZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRh
dHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2Zl
dGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9h
bGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNv
bXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGlu
ZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29y
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAg
ICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVu
c3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMu
cHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRq
X2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiBy
ZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9n
X2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBp
biBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2df
ZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNl
bGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAg
IHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRy
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9t
YW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0
cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRj
aF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxs
CiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21w
aWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUg
ODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAg
Y3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1
cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5
IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9l
eGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVy
YWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19l
dmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4g
c3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBk
YXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2Fu
ZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRl
Wyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3Jl
X3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sK
ICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10K
QXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBz
dG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNp
cGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVy
X3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxl
cGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVf
bG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFz
ayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAg
YXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3Nl
cnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRp
ZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYy
LCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYu
aW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9p
bmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShl
dmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0
aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVy
X3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9n
ZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2Jq
ZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4g
bWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5h
bWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwg
aW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9
IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4
LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBj
dXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdf
Y3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwog
ICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRo
X3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRh
dGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5k
X3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVb
J3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4
OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1
cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJu
YWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9h
bmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3Rv
cmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFz
a2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
MDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5f
Z2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQog
ICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChs
b2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zv
cl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNz
ZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRp
b25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19l
dmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4g
c3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93
aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2
ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIg
aW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4g
dXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVy
bmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3Jt
YXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQu
dGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9m
cm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJz
aW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xh
eWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2Fu
ZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9y
ZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNr
ZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwg
aW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRf
c3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVf
dGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2Rh
dGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
MzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3Nl
cnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlv
bkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
c3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3Rh
cnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9y
bWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBp
biBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9u
X29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYu
X2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNl
bGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1
ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5h
Z2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihz
ZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9h
bGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAg
ICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxl
ci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4
LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vy
c29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVf
Y29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5Iiwg
bGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNf
dmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlz
ZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpk
amFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBp
biBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9l
bnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxm
Lm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdl
ci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2Vs
Zi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAg
c2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIu
ZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwg
aW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNv
ciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nv
bm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxp
bmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UK
ICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGph
bmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3Qg
Y2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9y
ZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQK
ICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVp
bGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5i
cmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAg
YnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4g
Z2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25l
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxm
Ll9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0
Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMg
PSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIs
IGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1
cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNv
cgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2Vs
Zi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0
aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBl
LCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwg
aW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMg
dGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3Jl
X2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rh
c2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAg
IGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNz
ZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50
aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0
YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFz
awogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9m
cm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9y
ZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBz
ZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIs
IGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5p
bnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93
aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2
ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZl
bnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0
b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0
ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRf
c3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsn
dGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAg
ICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFz
c2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3Rv
cmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBl
X2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92
ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBh
dGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRp
ZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9n
X2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2df
ZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3Nl
cnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlv
bkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVy
IGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2Yg
dGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVk
X3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAg
IHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90
YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBl
X2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5f
Z2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEw
MDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9l
bnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxm
Lm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdl
ci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2Vs
Zi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAg
c2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIu
ZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwg
aW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNv
ciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nv
bm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxp
bmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UK
ICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGph
bmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4g
c2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5z
dXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5v
cm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3Qg
PSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIu
cHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYu
Z2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNl
bGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4
ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGlu
IGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3Ig
PSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25u
ZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5l
IDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1
ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAg
ICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5n
by5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNl
bGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0
ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9z
dGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9u
ID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tm
aWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90
YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9m
b3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92
ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3Rv
cmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFz
awogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEn
XQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0
b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
ODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4g
dXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVy
bmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVf
YW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0
b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rh
c2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYu
X2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUK
ICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgo
bG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9m
b3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwg
aW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
dXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRl
X2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0
YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0
b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rh
c2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRh
J10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24g
d2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBp
biBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9y
ZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxh
eWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxm
aWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0
aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9i
dWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxm
LmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAg
ICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVy
biBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xv
bmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNl
bGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9m
ZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0
cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5
IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24u
Y3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vy
c29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBz
ZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
dXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5
cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1
LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQs
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBp
ZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJy
b3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3Qg
Y2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9y
ZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQK
ICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVp
bGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5i
cmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAg
YnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4g
Z2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25l
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxm
Ll9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0
Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMg
PSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIs
IGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1
cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNv
cgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2Vs
Zi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0
aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBl
LCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwg
aW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRl
bnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9y
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNh
dXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVf
bG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAg
ICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxk
CiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJi
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1
aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdl
dGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5f
ZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNo
X2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0g
Y29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBs
aW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJz
b3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IK
ICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYu
ZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGls
cy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwg
ZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGlu
IHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50
aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2
MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxm
LmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVf
aW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUo
ZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1h
dGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXll
cl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBf
Z2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBk
YXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2Fu
ZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRl
Wyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0
ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRf
c3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsn
dGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAg
ICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFz
c2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3Rv
cmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBl
X2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92
ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBh
dGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRp
ZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9n
X2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2df
ZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGlu
IHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVw
ZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9h
bmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0
ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9y
ZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNr
CiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSdd
CkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdh
cyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4g
c3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVj
aXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXll
cl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmls
ZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgK
ICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVp
bGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5i
cmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAg
YnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4g
Z2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25l
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxm
Ll9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0
Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMg
PSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIs
IGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1
cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNv
cgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2Vs
Zi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0
aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBl
LCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwg
aW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMg
dGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3Jl
X2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4
NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODks
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5z
dXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5v
cm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3Qg
PSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIu
cHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYu
Z2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNl
bGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4
ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGlu
IGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3Ig
PSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25u
ZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5l
IDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1
ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAg
ICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5n
by5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNh
dXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVf
bG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAg
ICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxk
CiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJi
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1
aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdl
dGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5f
ZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNo
X2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0g
Y29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBs
aW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJz
b3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IK
ICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYu
ZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGls
cy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwg
ZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGlu
IHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRo
ZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9s
b2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9l
bnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAg
ICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2Fy
Z3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0g
bGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9f
CiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1
LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAg
IHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21w
aWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25u
ZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIs
IGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJz
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNv
cgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRq
X2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBs
aW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNr
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBh
c3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2Vy
dGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9n
X2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBp
biBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2df
ZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNl
bGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAg
IHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRy
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9t
YW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0
cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRj
aF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxs
CiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21w
aWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUg
ODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAg
Y3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1
cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5
IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9l
eGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVy
YWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19l
dmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4g
c3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3Rv
cmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFz
awogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEn
XQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYx
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQg
aWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVy
cm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0
IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3Rv
cmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRl
ZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0
aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBf
Z2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29i
aiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBz
ZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBm
b2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1
cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9y
bV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5w
eSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5n
ZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2Vs
Zi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhl
Y3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4g
ZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9
IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5l
Y3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUg
OTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVl
LCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAg
IHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdv
LmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9s
b2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xv
Z19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwg
aW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9n
X2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2df
ZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGlu
IHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9i
dWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dy
YXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5Iiwg
bGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9x
dWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9y
ZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRl
X3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVj
dXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2Vs
Zi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlv
bigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwg
aW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRy
YWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFp
c2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIu
dXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19l
dmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
c3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2
ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3
NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0
IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25F
cnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBp
biBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICBy
ZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFz
a2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9p
bmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dl
dF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAx
LCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBk
YXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFs
X3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZv
bGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3Vy
ZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3Jt
X3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0g
QnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5
IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdl
dF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxm
Ll9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVj
dXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBl
eGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0g
c2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVj
dGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5
OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUs
IHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAg
cmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28u
ZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xv
Z19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAg
c2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAog
ICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWls
ZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRh
dHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2Zl
dGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9h
bGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNv
bXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGlu
ZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29y
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAg
ICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVu
c3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMu
cHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRq
X2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiBy
ZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9n
X2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBp
biBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2df
ZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNl
bGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAg
IHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRy
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9t
YW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0
cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRj
aF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxs
CiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21w
aWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUg
ODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAg
Y3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1
cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5
IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9l
eGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVy
YWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19l
dmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4g
c3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93
aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2
ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZl
bnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0
b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
ODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVu
dChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0
IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3Rv
cmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9y
ZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1
ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQo
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBz
ZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRh
dGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxf
c3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlv
biA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNr
ZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21f
dGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25f
Zm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJf
dmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0
b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rh
c2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRh
J10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24g
d2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBz
dG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2Jq
ZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4g
bWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5h
bWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwg
aW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9
IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4
LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBj
dXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdf
Y3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwog
ICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRo
X3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dp
bmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2Yg
dGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZl
bnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYu
X2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNl
bGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1
ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5h
Z2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihz
ZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9h
bGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAg
ICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxl
ci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4
LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vy
c29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVf
Y29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5Iiwg
bGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNf
dmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlz
ZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpk
amFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0
b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVu
dAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9i
dWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxm
LmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAg
ICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVy
biBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xv
bmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNl
bGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9m
ZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0
cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5
IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24u
Y3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vy
c29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBz
ZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
dXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5
cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1
LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdh
cyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3Rv
cmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRl
X2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9z
dG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0
YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4
NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9h
bmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3Rv
cmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFz
a2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQs
IGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRp
b24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFz
a2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9t
X3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9u
X2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVy
X3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIs
IGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5p
bnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93
aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2
ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZl
bnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0
b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
ODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVu
dChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0
IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3Rv
cmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9y
ZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1
ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQo
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBz
ZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRh
dGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxf
c3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlv
biA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNr
ZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21f
dGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25f
Zm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJf
dmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0
b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rh
c2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRh
J10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3
NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0
IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25F
cnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBp
biBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICBy
ZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFz
a2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9p
bmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dl
dF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAx
LCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBk
YXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFs
X3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZv
bGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3Vy
ZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3Jt
X3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0g
QnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5
IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdl
dF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxm
Ll9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVj
dXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBl
eGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0g
c2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVj
dGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5
OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUs
IHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAg
cmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28u
ZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xv
Z19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAg
c2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAog
ICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWls
ZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRh
dHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2Zl
dGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9h
bGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNv
bXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGlu
ZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29y
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAg
ICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVu
c3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMu
cHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRq
X2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiBy
ZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9n
X2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBp
biBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9z
dG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90
YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0
YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAz
NjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2Vy
dCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9u
RXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFy
dGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3Jt
YXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGlu
IF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25f
b2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGlu
IHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVw
ZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5h
bF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1Nywg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0
aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRh
c2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJv
bV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lv
bl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXll
cl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRf
c3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVf
dGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2Rh
dGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3Nl
cnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlv
bkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
c3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2
ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3
NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0
IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25F
cnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBp
biBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICBy
ZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFz
a2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9p
bmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dl
dF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAx
LCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBk
YXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFs
X3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZv
bGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3Vy
ZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3Jt
X3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0g
QnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5
IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdl
dF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxm
Ll9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVj
dXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBl
eGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0g
c2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVj
dGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5
OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUs
IHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAg
cmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28u
ZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xv
Z19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAg
c2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAog
ICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWls
ZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRh
dHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2Zl
dGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9h
bGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNv
bXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGlu
ZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29y
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAg
ICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVu
c3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMu
cHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRq
X2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiBy
ZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9n
X2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBp
biBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2df
ZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNl
bGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAg
IHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRy
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9t
YW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0
cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRj
aF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxs
CiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21w
aWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUg
ODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAg
Y3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1
cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5
IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9l
eGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVy
YWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19l
dmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
NzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2Vy
dCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9u
RXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIg
aW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRf
dGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAg
cmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rh
c2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVf
aW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9n
ZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAw
MSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVw
ZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5h
bF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRh
dGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxf
c3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRf
c3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVf
dGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2Rh
dGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDks
IGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0
X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAg
bGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2Nh
bGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9w
YXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24g
d2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBz
dG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2Jq
ZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4g
bWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5h
bWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwg
aW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9
IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4
LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBj
dXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdf
Y3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwog
ICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRo
X3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dp
bmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGlu
IHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRl
cm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4
OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9l
bnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxm
Lm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdl
ci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2Vs
Zi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAg
c2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIu
ZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwg
aW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNv
ciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nv
bm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxp
bmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UK
ICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGph
bmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3Qg
Y2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9y
ZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQK
ICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVp
bGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5i
cmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAg
YnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4g
Z2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25l
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxm
Ll9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0
Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMg
PSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIs
IGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1
cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNv
cgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2Vs
Zi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0
aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBl
LCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwg
aW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMg
dGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3Jl
X2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rh
c2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAg
IGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNz
ZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50
aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0
YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFz
awogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9m
cm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9y
ZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBz
ZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2df
ZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNl
bGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAg
IHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRy
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9t
YW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0
cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRj
aF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxs
CiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21w
aWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUg
ODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAg
Y3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1
cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5
IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9l
eGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVy
YWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmll
ciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2
ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIg
aW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRf
dGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAg
cmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rh
c2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVf
aW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9n
ZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAw
MSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVw
ZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5h
bF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2Fu
ZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9y
ZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNr
ZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFz
c2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0
aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9z
dGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5m
b3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEs
IGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNp
b25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
c3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2
ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24g
d2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBz
dG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9y
ZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNr
CiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSdd
CkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQs
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBp
ZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJy
b3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3Qg
Y2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9y
ZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQK
ICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVp
bGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5i
cmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAg
YnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4g
Z2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25l
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxm
Ll9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0
Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMg
PSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIs
IGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1
cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNv
cgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2Vs
Zi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0
aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBl
LCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwg
aW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMg
dGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3Jl
X2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rh
c2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAg
IGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNz
ZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50
aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0
YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFz
awogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9m
cm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9y
ZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBz
ZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIs
IGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5p
bnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93
aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBp
biB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50
ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0
ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRf
c3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsn
dGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2Vs
Zi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmls
ZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0
aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9u
X2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFz
ayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAg
YXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3Nl
cnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRp
ZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYy
LCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYu
aW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9p
bmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShl
dmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0
aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVy
X3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9n
ZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2Jq
ZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4g
bWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5h
bWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwg
aW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9
IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4
LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBj
dXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdf
Y3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwog
ICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRo
X3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRh
dGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5k
X3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVb
J3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4
OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9l
bnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxm
Lm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdl
ci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2Vs
Zi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAg
c2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIu
ZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwg
aW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNv
ciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nv
bm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxp
bmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UK
ICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGph
bmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3Qg
Y2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9y
ZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQK
ICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVp
bGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5i
cmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAg
YnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4g
Z2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25l
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxm
Ll9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0
Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMg
PSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIs
IGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1
cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNv
cgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2Vs
Zi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0
aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBl
LCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwg
aW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRl
bnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9y
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNl
bGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZv
bGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lw
ZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmls
ZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9y
bWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xh
eWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGlu
IF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51
cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVf
YW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3Rh
dGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93
aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBp
biB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50
ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0
ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRf
c3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsn
dGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2Vs
Zi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmls
ZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0
aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9u
X2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFz
ayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAg
YXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3Nl
cnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xv
Z19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwg
aW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRf
c3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVf
dGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2Rh
dGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
MzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3Nl
cnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlv
bkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
c3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3Rh
cnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9y
bWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBp
biBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9u
X29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYu
X2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNl
bGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1
ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5h
Z2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihz
ZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9h
bGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAg
ICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxl
ci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4
LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vy
c29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVf
Y29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5Iiwg
bGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNf
dmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlz
ZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpk
amFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBp
biBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9l
bnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxm
Lm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdl
ci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2Vs
Zi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAg
c2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIu
ZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwg
aW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNv
ciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nv
bm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxp
bmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UK
ICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGph
bmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3Qg
Y2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9y
ZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQK
ICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVp
bGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5i
cmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAg
YnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4g
Z2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25l
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxm
Ll9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0
Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMg
PSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIs
IGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1
cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNv
cgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2Vs
Zi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0
aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBl
LCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwg
aW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMg
dGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3Jl
X2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4
NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODks
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5z
dXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5v
cm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3Qg
PSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIu
cHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYu
Z2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNl
bGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4
ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGlu
IGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3Ig
PSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25u
ZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5l
IDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1
ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAg
ICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5n
by5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNl
bGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0
ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9z
dGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9u
ID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tm
aWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90
YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9m
b3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92
ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3Rv
cmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFz
awogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEn
XQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0
b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3Jl
X3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sK
ICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10K
QXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlk
ZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJv
cgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRf
dGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlv
bl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dl
dF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmog
PSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1
cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9y
bV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5w
eSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5n
ZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2Vs
Zi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhl
Y3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4g
ZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9
IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5l
Y3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUg
OTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVl
LCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAg
IHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdv
LmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
NjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2Vs
Zi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9n
X2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2df
ZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3Nl
cnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlv
bkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVy
IGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2Yg
dGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVk
X3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAg
IHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90
YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBl
X2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5f
Z2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEw
MDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1
cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJu
YWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODks
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBk
YXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFs
X3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5k
X3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3Jl
X3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tk
YXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5
LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dl
dF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAg
IGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9j
YWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3Jf
cGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
NzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2Vy
dCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9u
RXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZl
bnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQg
aWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVy
cm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGlu
IHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rh
c2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJl
Y2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNr
ZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2lu
Zm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0
X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEs
IGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRh
dGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxf
c3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9n
X2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2df
ZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGlu
IHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVw
ZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9h
bmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0
ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9y
ZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNr
CiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSdd
CkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdh
cyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4g
c3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVj
aXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXll
cl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmls
ZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgK
ICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVp
bGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5i
cmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAg
YnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4g
Z2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25l
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxm
Ll9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0
Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMg
PSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIs
IGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1
cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNv
cgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2Vs
Zi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0
aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBl
LCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwg
aW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMg
dGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3Jl
X2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rh
c2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAg
IGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNz
ZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50
aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0
YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFz
awogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9m
cm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9y
ZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBz
ZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIs
IGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5p
bnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBk
YXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2Fu
ZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRl
Wyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3Jl
X3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sK
ICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10K
QXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBz
dG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNp
cGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVy
X3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxl
cGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVu
dGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
NjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2Vs
Zi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9n
X2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZp
ZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2Miwg
aW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmlu
dGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dp
bmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
MzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5m
b3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZl
bnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlv
bl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92
ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0
X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRl
X2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9z
dG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0
YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4
NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9h
bmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3Rv
cmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFz
a2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNr
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBh
c3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2Vy
dGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVf
c3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2lu
Zm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMx
LCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJz
aW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNl
bGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAg
IHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRy
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9t
YW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0
cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRj
aF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxs
CiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21w
aWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUg
ODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAg
Y3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1
cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5
IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9l
eGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVy
YWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmll
ciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2
ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZl
bnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0
b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0
ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRf
c3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsn
dGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAg
ICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFz
c2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3Rv
cmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBl
X2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92
ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBh
dGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRp
ZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9n
X2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZp
ZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2Miwg
aW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmlu
dGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dp
bmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
MzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5m
b3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZl
bnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlv
bl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92
ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0
X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRl
X2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9z
dG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0
YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4
NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9h
bmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3Rv
cmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFz
a2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNr
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBh
c3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2Vy
dGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVf
c3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2lu
Zm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMx
LCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJz
aW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNl
bGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAg
IHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRy
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9t
YW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0
cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRj
aF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxs
CiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21w
aWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUg
ODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAg
Y3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1
cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5
IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9l
eGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVy
YWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmll
ciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2
ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIg
aW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4g
dXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVy
bmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3Jt
YXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQu
dGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9m
cm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJz
aW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xh
eWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2Fu
ZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9y
ZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNr
ZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwg
aW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
dXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRl
X2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0
YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0
b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rh
c2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRh
J10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24g
d2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBp
biBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9y
ZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxh
eWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxm
aWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0
aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9i
dWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxm
LmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAg
ICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVy
biBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xv
bmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNl
bGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9m
ZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0
cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5
IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24u
Y3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vy
c29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBz
ZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
dXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5
cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1
LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdh
cyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3Rv
cmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4
OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1
cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJu
YWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODks
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBk
YXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFs
X3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5k
X3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3Jl
X3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tk
YXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5
LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dl
dF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAg
IGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9j
YWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3Jf
cGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
NzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2Vy
dCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9u
RXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZl
bnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQg
aWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVy
cm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGlu
IHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rh
c2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJl
Y2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNr
ZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2lu
Zm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0
X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEs
IGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRh
dGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxf
c3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9n
X2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2df
ZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGlu
IHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9i
dWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dy
YXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5Iiwg
bGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9x
dWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9y
ZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRl
X3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVj
dXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2Vs
Zi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlv
bigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwg
aW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRy
YWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFp
c2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIu
dXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19l
dmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
c3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2
ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24g
d2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBz
dG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2Jq
ZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4g
bWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5h
bWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwg
aW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9
IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4
LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBj
dXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdf
Y3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwog
ICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRo
X3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRh
dGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5k
X3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVb
J3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVf
dGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawog
ICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpB
c3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMg
dGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0
b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lw
ZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJf
dmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVw
YXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAg
ICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxk
CiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJi
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1
aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdl
dGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5f
ZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNo
X2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0g
Y29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBs
aW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJz
b3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IK
ICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYu
ZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGls
cy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwg
ZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGlu
IHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRo
ZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9s
b2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9l
bnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAg
ICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2Fy
Z3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0g
bGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9f
CiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1
LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAg
IHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21w
aWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25u
ZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIs
IGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJz
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNv
cgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRq
X2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBs
aW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQs
IGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZv
bGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3Vy
ZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3Jt
X3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0g
QnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5
IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdl
dF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxm
Ll9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVj
dXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBl
eGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0g
c2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVj
dGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5
OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUs
IHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAg
cmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28u
ZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2
MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxm
LmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIs
IGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5p
bnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBk
YXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2Fu
ZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRl
Wyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBz
ZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tm
aWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9w
YXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNp
b25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1
ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQo
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBz
ZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRh
dGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxf
c3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRf
c3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVf
dGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2Rh
dGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDks
IGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0
X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAg
bGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2Nh
bGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9w
YXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24g
d2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBz
dG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9y
ZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNr
CiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSdd
CkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdh
cyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3Rv
cmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4
OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9l
bnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxm
Lm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdl
ci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2Vs
Zi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAg
c2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIu
ZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwg
aW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNv
ciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nv
bm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxp
bmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UK
ICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGph
bmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3Qg
Y2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9y
ZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQK
ICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVp
bGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5i
cmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAg
YnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4g
Z2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25l
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxm
Ll9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0
Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMg
PSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIs
IGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1
cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNv
cgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2Vs
Zi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0
aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBl
LCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwg
aW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMg
dGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3Jl
X2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4
NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODks
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5z
dXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5v
cm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3Qg
PSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIu
cHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYu
Z2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNl
bGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4
ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGlu
IGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3Ig
PSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25u
ZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5l
IDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1
ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAg
ICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5n
by5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNl
bGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0
ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9z
dGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9u
ID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tm
aWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90
YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9m
b3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92
ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3Rv
cmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFz
awogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEn
XQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0
b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3Jl
X3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sK
ICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10K
QXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlk
ZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJv
cgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRf
dGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlv
bl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dl
dF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmog
PSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1
cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9y
bV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5w
eSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5n
ZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2Vs
Zi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhl
Y3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4g
ZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9
IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5l
Y3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUg
OTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVl
LCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAg
IHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdv
LmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
NjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2Vs
Zi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYy
LCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYu
aW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVw
ZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9h
bmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0
ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0g
c2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNr
ZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3Jf
cGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJz
aW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVf
dGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawog
ICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpB
c3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRl
bnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9y
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNl
bGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZv
bGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lw
ZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmls
ZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9y
bWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xh
eWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGlu
IF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51
cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVf
YW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3Rh
dGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3Rv
cmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFz
awogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEn
XQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGlu
IHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3Jl
Y2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5
ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZp
bGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRo
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9y
ZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAg
ICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFz
c2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVu
dGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9s
b2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xv
Z19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFz
c2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0
aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZp
ZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0
ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawog
ICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9t
X3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNp
cGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxm
Ll9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGlu
IHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRl
cm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4
OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9l
bnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxm
Lm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdl
ci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2Vs
Zi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAg
c2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIu
ZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwg
aW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNv
ciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nv
bm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxp
bmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UK
ICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGph
bmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3Qg
Y2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9y
ZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQK
ICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVp
bGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5i
cmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAg
YnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4g
Z2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25l
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxm
Ll9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0
Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMg
PSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIs
IGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1
cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNv
cgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2Vs
Zi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0
aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBl
LCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwg
aW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMg
dGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3Jl
X2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rh
c2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAg
IGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNz
ZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50
aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0
YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFz
awogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9m
cm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9y
ZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBz
ZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIs
IGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5p
bnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93
aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2
ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZl
bnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0
b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
ODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4g
dXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVy
bmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVf
YW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0
b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rh
c2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYu
X2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUK
ICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgo
bG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9m
b3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwg
aW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRf
c3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVf
dGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2Rh
dGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3Nl
cnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlv
bkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVy
IGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2Yg
dGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVk
X3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAg
IHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90
YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBl
X2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5f
Z2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEw
MDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1
cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJu
YWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODks
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5z
dXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5v
cm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3Qg
PSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIu
cHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYu
Z2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNl
bGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4
ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGlu
IGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3Ig
PSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25u
ZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5l
IDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1
ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAg
ICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5n
by5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNh
dXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVf
bG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAg
ICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxk
CiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJi
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1
aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdl
dGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5f
ZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNo
X2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0g
Y29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBs
aW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJz
b3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IK
ICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYu
ZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGls
cy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwg
ZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGlu
IHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRo
ZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9s
b2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9l
bnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAg
ICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2Fy
Z3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0g
bGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9f
CiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1
LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAg
IHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21w
aWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25u
ZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIs
IGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJz
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNv
cgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRq
X2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBs
aW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNr
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBh
c3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2Vy
dGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlm
aWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFy
dGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sK
ICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJv
bV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVj
aXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2Vs
Zi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBp
biB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50
ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
ODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVu
dChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0
IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3Rv
cmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9y
ZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAg
ICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFz
c2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVu
dGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9z
dGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rh
c2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25f
ZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRf
cmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0g
c2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYy
LCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYu
aW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9i
dWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dy
YXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5Iiwg
bGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9x
dWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9y
ZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRl
X3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVj
dXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2Vs
Zi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlv
bigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwg
aW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRy
YWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFp
c2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIu
dXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19l
dmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
c3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2
ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3
NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0
IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25F
cnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBp
biBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICBy
ZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFz
a2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9p
bmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dl
dF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAx
LCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBk
YXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFs
X3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZv
bGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3Vy
ZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3Jt
X3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0g
QnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5
IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdl
dF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxm
Ll9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVj
dXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBl
eGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0g
c2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVj
dGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5
OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUs
IHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAg
cmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28u
ZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xv
Z19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAg
c2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAog
ICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWls
ZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRh
dHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2Zl
dGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9h
bGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNv
bXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGlu
ZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29y
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAg
ICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVu
c3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMu
cHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRq
X2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiBy
ZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9n
X2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNz
ZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRp
b25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmll
ciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRl
ZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAg
ICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21f
dGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lw
ZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYu
X2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4g
dXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVy
bmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVf
YW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0
b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rh
c2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYu
X2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUK
ICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgo
bG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9m
b3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFz
c2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0
aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2df
ZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3Nl
cnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlv
bkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
c3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2
ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3
NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0
IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25F
cnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBp
biBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICBy
ZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFz
a2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9p
bmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dl
dF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAx
LCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBk
YXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFs
X3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZv
bGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3Vy
ZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3Jt
X3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0g
QnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5
IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdl
dF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxm
Ll9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVj
dXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBl
eGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0g
c2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVj
dGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5
OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUs
IHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAg
cmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28u
ZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xv
Z19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAg
c2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAog
ICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWls
ZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRh
dHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2Zl
dGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9h
bGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNv
bXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGlu
ZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29y
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAg
ICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVu
c3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMu
cHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRq
X2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiBy
ZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9n
X2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNz
ZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRp
b25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmll
ciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBp
biB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50
ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAz
NTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZv
cm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVu
dC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9u
X2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3Zl
cnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRf
bGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVf
YW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0
b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rh
c2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYu
X2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUK
ICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgo
bG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9m
b3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFz
c2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0
aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZp
ZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19l
dmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVy
IGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGlu
IHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRl
cm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1
NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9y
bWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50
LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25f
ZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVy
c2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9s
YXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9h
bmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3Rv
cmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFz
a2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQs
IGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZv
bGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3Vy
ZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3Jt
X3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0g
QnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5
IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdl
dF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxm
Ll9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVj
dXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBl
eGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0g
c2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVj
dGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5
OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUs
IHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAg
cmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28u
ZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xv
Z19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAg
c2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAog
ICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWls
ZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRh
dHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2Zl
dGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9h
bGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNv
bXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGlu
ZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29y
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAg
ICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVu
c3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMu
cHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRq
X2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiBy
ZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlm
aWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIs
IGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5p
bnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93
aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2lu
Zm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2
ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRp
b25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJf
dmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dl
dF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
ODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4g
dXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVy
bmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQo
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVu
dGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
NjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2Vs
Zi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBl
X2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxl
KGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3Jt
YXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5
ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4g
X2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVw
ZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9h
bmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0
ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2Jq
ZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4g
bWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5h
bWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwg
aW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9
IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4
LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBj
dXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdf
Y3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwog
ICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRo
X3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dp
bmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2Yg
dGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZl
bnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYu
X2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNl
bGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1
ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5h
Z2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihz
ZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9h
bGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAg
ICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxl
ci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4
LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vy
c29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVf
Y29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5Iiwg
bGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNf
dmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlz
ZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpk
amFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBp
biBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1
cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJu
YWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcs
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1h
dGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50
YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zy
b21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNp
b25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5
ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5k
X3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3Jl
X3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tk
YXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBp
biBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9z
dG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90
YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0
YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAz
NjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2Vy
dCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9u
RXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFy
dGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3Jt
YXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGlu
IF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25f
b2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGlu
IHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQo
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVf
bG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFz
ayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAg
YXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3Nl
cnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRp
ZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3Rh
cnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNr
CiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zy
b21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3Jl
Y2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNl
bGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9i
dWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dy
YXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5Iiwg
bGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9x
dWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9y
ZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRl
X3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVj
dXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2Vs
Zi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlv
bigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwg
aW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRy
YWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFp
c2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIu
dXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2Miwg
aW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmlu
dGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dp
bmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2Yg
dGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZl
bnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYu
X2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNl
bGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1
ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5h
Z2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihz
ZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9h
bGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAg
ICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxl
ci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4
LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vy
c29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVf
Y29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5Iiwg
bGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNf
dmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlz
ZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpk
amFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBp
biBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1
cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJu
YWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcs
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1h
dGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50
YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zy
b21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNp
b25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5
ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5k
X3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3Jl
X3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tk
YXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBp
biBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2df
ZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNl
bGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAg
IHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRy
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9t
YW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0
cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRj
aF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxs
CiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21w
aWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUg
ODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAg
Y3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1
cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5
IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9l
eGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVy
YWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmll
ciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBp
biB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50
ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAz
NTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZv
cm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVu
dC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9u
X2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3Zl
cnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRf
bGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVf
YW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0
b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rh
c2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0
LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2Fu
ZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9y
ZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNr
ZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFz
c2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0
aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9z
dGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5m
b3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEs
IGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNp
b25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
c3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2
ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24g
d2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBz
dG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9y
ZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNr
CiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSdd
CkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEs
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBp
ZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJy
b3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3Qg
Y2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9y
ZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVk
X3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRp
b25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9n
ZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2Jq
ID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5z
dXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5v
cm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3Qg
PSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIu
cHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYu
Z2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNl
bGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4
ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGlu
IGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3Ig
PSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25u
ZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5l
IDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1
ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAg
ICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5n
by5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNl
bGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZv
bGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3Vy
ZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3Jt
X3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0g
QnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5
IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdl
dF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxm
Ll9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVj
dXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBl
eGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0g
c2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVj
dGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5
OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUs
IHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAg
cmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28u
ZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2
MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxm
LmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIs
IGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5p
bnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBk
YXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2Fu
ZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRl
Wyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBz
ZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tm
aWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9w
YXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNp
b25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAg
ICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFz
c2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVf
bG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0
LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRh
dGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxf
c3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRf
c3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVf
dGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2Rh
dGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDks
IGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0
X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAg
bGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2Nh
bGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9w
YXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3
NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0
IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25F
cnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBp
biBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICBy
ZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFz
a2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9p
bmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dl
dF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAx
LCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBk
YXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFs
X3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0
ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9z
dGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2df
ZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNl
bGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAg
IHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRy
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9t
YW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0
cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRj
aF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxs
CiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21w
aWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUg
ODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAg
Y3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1
cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5
IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9l
eGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVy
YWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmll
ciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBp
biB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50
ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAz
NTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZv
cm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVu
dC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9u
X2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3Zl
cnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRf
bGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVf
YW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0
b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rh
c2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFz
ayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAg
YXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3Nl
cnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3Jl
X3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9p
bmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAz
MSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVy
c2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZp
ZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2Miwg
aW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmlu
dGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dp
bmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
MzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5m
b3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZl
bnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlv
bl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92
ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0
X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRl
X2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9z
dG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0
YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4
NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9h
bmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3Rv
cmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFz
a2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNr
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBh
c3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2Vy
dGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9n
X2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBp
biBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIs
IGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5p
bnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBk
YXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2Fu
ZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRl
Wyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBz
ZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tm
aWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9w
YXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNp
b25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1
ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVf
YW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0
b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rh
c2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFz
ayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAg
YXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3Nl
cnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3Jl
X3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9p
bmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAz
MSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVy
c2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZp
ZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2Miwg
aW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmlu
dGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dp
bmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2Yg
dGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZl
bnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYu
X2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNl
bGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1
ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5h
Z2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihz
ZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9h
bGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAg
ICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxl
ci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4
LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vy
c29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVf
Y29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5Iiwg
bGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNf
dmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlz
ZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpk
amFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0
b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVu
dAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9i
dWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxm
LmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAg
ICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVy
biBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xv
bmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNl
bGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9m
ZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0
cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5
IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24u
Y3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vy
c29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBz
ZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
dXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5
cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1
LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdh
cyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3Rv
cmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4
OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1
cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJu
YWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODks
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBk
YXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFs
X3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRp
b24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFz
a2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9t
X3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9u
X2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVy
X3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2df
ZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNl
bGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAg
IHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRy
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9t
YW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0
cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRj
aF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxs
CiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21w
aWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUg
ODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAg
Y3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1
cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5
IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9l
eGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVy
YWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19l
dmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4g
c3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBk
YXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2Fu
ZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRl
Wyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3Jl
X3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sK
ICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10K
QXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBz
dG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNp
cGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVy
X3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxl
cGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVu
dGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
NjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2Vs
Zi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBl
X2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxl
KGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3Jt
YXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5
ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4g
X2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVw
ZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9h
bmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0
ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9y
ZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNr
CiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSdd
CkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdh
cyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3Rv
cmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRl
X2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9z
dG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0
YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4
NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODks
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBk
YXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFs
X3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5k
X3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3Jl
X3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tk
YXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5
LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dl
dF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAg
IGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9j
YWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3Jf
cGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4g
c3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3Rv
cmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFz
awogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEn
XQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0
b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
ODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVu
dChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGlu
IHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVw
ZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5h
bF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1Nywg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0
aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRh
c2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJv
bV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lv
bl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXll
cl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
dXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRl
X2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0
YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9i
dWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dy
YXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5Iiwg
bGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9x
dWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9y
ZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRl
X3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVj
dXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2Vs
Zi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlv
bigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwg
aW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRy
YWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFp
c2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIu
dXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19l
dmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
c3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2
ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24g
d2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBz
dG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2Jq
ZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4g
bWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5h
bWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwg
aW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9
IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4
LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBj
dXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdf
Y3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwog
ICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRo
X3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dp
bmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2Yg
dGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZl
bnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYu
X2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNl
bGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1
ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5h
Z2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihz
ZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9h
bGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAg
ICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxl
ci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4
LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vy
c29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVf
Y29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5Iiwg
bGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNf
dmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlz
ZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpk
amFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0
b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVu
dAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9i
dWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxm
LmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAg
ICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVy
biBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xv
bmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNl
bGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9m
ZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0
cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5
IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24u
Y3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vy
c29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBz
ZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
dXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5
cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1
LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdh
cyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3Rv
cmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4
OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9l
bnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxm
Lm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdl
ci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2Vs
Zi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAg
c2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIu
ZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwg
aW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNv
ciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nv
bm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxp
bmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UK
ICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGph
bmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3Qg
Y2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9y
ZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQK
ICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVp
bGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5i
cmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAg
YnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4g
Z2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25l
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxm
Ll9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0
Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMg
PSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIs
IGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1
cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNv
cgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2Vs
Zi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0
aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBl
LCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwg
aW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMg
dGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3Jl
X2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4
NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODks
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBk
YXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFs
X3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5k
X3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3Jl
X3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tk
YXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBp
biBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9u
ID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tm
aWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90
YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9m
b3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92
ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93
aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2
ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZl
bnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0
b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
ODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVu
dChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0
IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3Rv
cmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlk
ZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJv
cgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVf
bG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0
LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBm
b2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1
cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9y
bV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5w
eSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5n
ZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2Vs
Zi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhl
Y3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4g
ZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9
IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5l
Y3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUg
OTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVl
LCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAg
IHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdv
LmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9s
b2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xv
Z19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwg
aW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9n
X2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2df
ZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGlu
IHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9i
dWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dy
YXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5Iiwg
bGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9x
dWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9y
ZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRl
X3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVj
dXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2Vs
Zi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlv
bigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwg
aW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRy
YWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFp
c2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIu
dXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19l
dmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
c3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2
ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24g
d2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBz
dG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2Jq
ZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4g
bWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5h
bWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwg
aW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9
IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4
LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBj
dXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdf
Y3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwog
ICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRo
X3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dp
bmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2Yg
dGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZl
bnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYu
X2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNl
bGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1
ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5h
Z2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihz
ZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9h
bGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAg
ICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxl
ci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4
LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vy
c29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVf
Y29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5Iiwg
bGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNf
dmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlz
ZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpk
amFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0
b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVu
dAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9i
dWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxm
LmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAg
ICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVy
biBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xv
bmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNl
bGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9m
ZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0
cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5
IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24u
Y3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vy
c29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBz
ZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
dXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5
cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1
LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdh
cyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3Rv
cmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVf
dGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawog
ICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpB
c3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMg
dGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3Jl
X2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rh
c2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAg
IGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNz
ZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRo
ZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9s
b2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9l
bnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAg
ICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2Fy
Z3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0g
bGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9f
CiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1
LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAg
IHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21w
aWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25u
ZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIs
IGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJz
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNv
cgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRq
X2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBs
aW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
MDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5f
Z2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQog
ICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChs
b2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zv
cl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBp
biBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIs
IGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5p
bnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93
aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2
ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZl
bnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0
b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
ODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4g
dXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVy
bmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVf
YW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0
b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rh
c2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYu
X2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUK
ICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgo
bG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9m
b3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwg
aW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9n
X2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2df
ZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGlu
IHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9i
dWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dy
YXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5Iiwg
bGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9x
dWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9y
ZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRl
X3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVj
dXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2Vs
Zi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlv
bigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwg
aW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRy
YWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFp
c2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIu
dXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2Miwg
aW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmlu
dGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRh
dGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5k
X3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVb
J3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNl
bGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2Zp
bGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3Bh
dGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lv
bl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rh
c2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAg
IGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNz
ZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50
aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2
MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxm
LmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVf
aW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUo
ZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1h
dGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXll
cl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBf
Z2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93
aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBp
biB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50
ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0
ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRf
c3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsn
dGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAg
ICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFz
c2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3Rv
cmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBl
X2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92
ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBh
dGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRp
ZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYy
LCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYu
aW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9i
dWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dy
YXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5Iiwg
bGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9x
dWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9y
ZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRl
X3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVj
dXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2Vs
Zi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlv
bigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwg
aW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRy
YWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFp
c2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIu
dXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19l
dmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
c3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2
ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3
NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0
IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25F
cnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBp
biBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICBy
ZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFz
a2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9p
bmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dl
dF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAx
LCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5z
dXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5v
cm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3Qg
PSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIu
cHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYu
Z2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNl
bGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4
ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGlu
IGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3Ig
PSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25u
ZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5l
IDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1
ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAg
ICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5n
by5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNl
bGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZv
bGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3Vy
ZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3Jt
X3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0g
QnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5
IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdl
dF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxm
Ll9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVj
dXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBl
eGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0g
c2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVj
dGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5
OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUs
IHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAg
cmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28u
ZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xv
Z19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAg
c2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAog
ICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWls
ZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRh
dHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2Zl
dGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9h
bGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNv
bXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGlu
ZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29y
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAg
ICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVu
c3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMu
cHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRq
X2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiBy
ZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9n
X2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBp
biBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2df
ZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNl
bGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAg
IHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRy
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9t
YW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0
cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRj
aF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxs
CiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21w
aWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUg
ODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAg
Y3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1
cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5
IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9l
eGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVy
YWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19l
dmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4g
c3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBk
YXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2Fu
ZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRl
Wyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3Jl
X3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sK
ICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10K
QXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBz
dG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNp
cGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVy
X3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxl
cGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVu
dGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9s
b2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xv
Z19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwg
aW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
dXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRl
X2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0
YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0
b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rh
c2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRh
J10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24g
d2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBp
biBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9y
ZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxh
eWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxm
aWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0
aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9i
dWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxm
LmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAg
ICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVy
biBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xv
bmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNl
bGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9m
ZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0
cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5
IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24u
Y3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vy
c29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBz
ZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
dXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5
cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1
LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQs
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBp
ZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJy
b3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3Qg
Y2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9y
ZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQK
ICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVp
bGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5i
cmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAg
YnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4g
Z2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25l
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxm
Ll9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0
Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMg
PSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIs
IGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1
cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNv
cgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2Vs
Zi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0
aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBl
LCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwg
aW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMg
dGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3Jl
X2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4
NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODks
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5z
dXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5v
cm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3Qg
PSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIu
cHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYu
Z2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNl
bGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4
ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGlu
IGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3Ig
PSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25u
ZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5l
IDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1
ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAg
ICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5n
by5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNh
dXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVf
bG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAg
ICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxk
CiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJi
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1
aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdl
dGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5f
ZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNo
X2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0g
Y29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBs
aW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJz
b3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IK
ICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYu
ZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGls
cy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwg
ZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGlu
IHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50
aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2
MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxm
LmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVf
aW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUo
ZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1h
dGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXll
cl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBf
Z2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93
aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBp
biB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50
ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
ODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVu
dChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0
IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3Rv
cmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9y
ZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1
ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQo
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVf
bG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0
LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2Fu
ZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9y
ZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNr
ZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwg
aW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRf
c3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVf
dGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2Rh
dGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDks
IGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0
X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAg
bGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2Nh
bGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9w
YXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3
NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0
IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25F
cnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0
b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVu
dAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9i
dWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxm
LmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAg
ICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVy
biBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xv
bmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNl
bGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9m
ZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0
cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5
IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24u
Y3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vy
c29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBz
ZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
dXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5
cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1
LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdh
cyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3Rv
cmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4
OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9l
bnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxm
Lm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdl
ci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2Vs
Zi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAg
c2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIu
ZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwg
aW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNv
ciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nv
bm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxp
bmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UK
ICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGph
bmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3Qg
Y2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9y
ZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQK
ICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVp
bGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5i
cmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAg
YnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4g
Z2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25l
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxm
Ll9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0
Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMg
PSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIs
IGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1
cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNv
cgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2Vs
Zi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0
aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBl
LCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwg
aW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMg
dGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3Jl
X2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4
NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODks
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5z
dXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5v
cm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3Qg
PSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIu
cHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYu
Z2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNl
bGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4
ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGlu
IGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3Ig
PSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25u
ZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5l
IDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1
ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAg
ICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5n
by5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNh
dXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVf
bG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAg
ICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxk
CiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJi
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1
aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdl
dGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5f
ZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNo
X2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0g
Y29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBs
aW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJz
b3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IK
ICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYu
ZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGls
cy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwg
ZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGlu
IHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRo
ZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9s
b2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9l
bnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAg
ICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2Fy
Z3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0g
bGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9f
CiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1
LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAg
IHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21w
aWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25u
ZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIs
IGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJz
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNv
cgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRq
X2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBs
aW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQs
IGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZv
bGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3Vy
ZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3Jt
X3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0g
QnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5
IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdl
dF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxm
Ll9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVj
dXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBl
eGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0g
c2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVj
dGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5
OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUs
IHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAg
cmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28u
ZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2
MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxm
LmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51
cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVf
YW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3Rh
dGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9
IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmls
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFz
a2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9y
X3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVy
c2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0
ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRf
c3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsn
dGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1
ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQo
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBz
ZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRh
dGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxf
c3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlv
biA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNr
ZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21f
dGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25f
Zm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJf
dmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0
b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rh
c2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRh
J10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24g
d2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBz
dG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2Jq
ZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4g
bWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5h
bWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwg
aW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9
IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4
LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBj
dXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdf
Y3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwog
ICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRo
X3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dp
bmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGlu
IHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRl
cm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRl
X2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9z
dG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0
YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxm
Ll9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxl
CiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRo
KGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25f
Zm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9l
bnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAg
ICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2Fy
Z3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0g
bGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9f
CiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1
LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAg
IHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21w
aWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25u
ZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIs
IGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJz
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNv
cgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRq
X2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBs
aW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNr
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBh
c3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2Vy
dGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9n
X2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBp
biBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9z
dG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90
YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0
YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAz
NjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2Vy
dCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9u
RXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFy
dGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3Jt
YXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGlu
IF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25f
b2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0
IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3Rv
cmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlk
ZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJv
cgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVf
bG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0
LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2Fu
ZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9y
ZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNr
ZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFz
c2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0
aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9z
dGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5m
b3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEs
IGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNp
b25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVy
IGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGlu
IHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRl
cm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRl
X2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9z
dG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0
YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxm
Ll9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxl
CiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRo
KGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25f
Zm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9l
bnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAg
ICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2Fy
Z3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0g
bGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9f
CiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1
LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAg
IHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21w
aWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25u
ZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIs
IGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJz
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNv
cgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRq
X2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBs
aW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQs
IGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5k
X3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3Jl
X3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tk
YXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBp
biBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2df
ZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNl
bGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAg
IHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRy
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9t
YW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0
cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRj
aF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxs
CiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21w
aWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUg
ODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAg
Y3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1
cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5
IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9l
eGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVy
YWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmll
ciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBp
biB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50
ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAz
NTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZv
cm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVu
dC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9u
X2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3Zl
cnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRf
bGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVw
ZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5h
bF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBm
b2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1
cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9y
bV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5w
eSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5n
ZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2Vs
Zi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhl
Y3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4g
ZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9
IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5l
Y3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUg
OTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVl
LCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAg
IHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdv
LmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9s
b2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xv
Z19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFz
c2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0
aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZp
ZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0
ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawog
ICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9t
X3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNp
cGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxm
Ll9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGlu
IHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRl
cm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4
OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9l
bnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxm
Lm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdl
ci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2Vs
Zi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAg
c2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIu
ZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwg
aW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNv
ciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nv
bm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxp
bmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UK
ICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGph
bmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3Qg
Y2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9y
ZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQK
ICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVp
bGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5i
cmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAg
YnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4g
Z2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25l
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxm
Ll9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0
Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMg
PSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIs
IGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1
cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNv
cgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2Vs
Zi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0
aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBl
LCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwg
aW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMg
dGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3Jl
X2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rh
c2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAg
IGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNz
ZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50
aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0
YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFz
awogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9m
cm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9y
ZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBz
ZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIs
IGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5p
bnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93
aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2
ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZl
bnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0
b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3Jl
X3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sK
ICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10K
QXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlk
ZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJv
cgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRf
dGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlv
bl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dl
dF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmog
PSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1
cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9y
bV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5w
eSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5n
ZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2Vs
Zi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhl
Y3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4g
ZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9
IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5l
Y3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUg
OTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVl
LCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAg
IHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdv
LmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
NjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2Vs
Zi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9n
X2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2df
ZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGlu
IHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVw
ZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9h
bmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0
ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9y
ZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNr
CiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSdd
CkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdh
cyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4g
c3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVj
aXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXll
cl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmls
ZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgK
ICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVp
bGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5i
cmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAg
YnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4g
Z2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25l
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxm
Ll9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0
Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMg
PSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIs
IGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1
cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNv
cgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2Vs
Zi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0
aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBl
LCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwg
aW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRl
bnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9y
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNh
dXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVf
bG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAg
ICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxk
CiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJi
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1
aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdl
dGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5f
ZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNo
X2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0g
Y29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBs
aW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJz
b3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IK
ICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYu
ZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGls
cy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwg
ZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGlu
IHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRo
ZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9s
b2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9l
bnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAg
ICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2Fy
Z3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0g
bGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9f
CiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1
LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAg
IHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21w
aWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25u
ZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIs
IGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJz
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNv
cgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRq
X2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBs
aW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQs
IGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZv
bGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3Vy
ZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3Jt
X3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0g
QnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5
IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdl
dF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxm
Ll9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVj
dXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBl
eGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0g
c2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVj
dGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5
OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUs
IHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAg
cmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28u
ZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2
MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxm
LmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51
cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVf
YW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3Rh
dGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9
IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmls
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFz
a2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9y
X3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVy
c2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0
ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRf
c3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsn
dGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAg
ICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFz
c2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVu
dGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9z
dGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rh
c2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25f
ZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRf
cmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0g
c2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9n
X2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZp
ZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19l
dmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVy
IGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGlu
IHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRl
cm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1
NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9y
bWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50
LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25f
ZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVy
c2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9s
YXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9h
bmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3Rv
cmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFz
a2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQs
IGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0
ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9z
dGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51
cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVf
YW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3Rh
dGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9
IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmls
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFz
a2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9y
X3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVy
c2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3Jl
X3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sK
ICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10K
QXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBz
dG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNp
cGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVy
X3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxl
cGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVu
dGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9z
dGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rh
c2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25f
ZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRf
cmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0g
c2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYy
LCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYu
aW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9i
dWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dy
YXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5Iiwg
bGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9x
dWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9y
ZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRl
X3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVj
dXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2Vs
Zi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlv
bigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwg
aW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRy
YWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFp
c2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIu
dXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19l
dmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
c3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2
ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24g
d2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBz
dG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2Jq
ZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4g
bWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5h
bWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwg
aW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9
IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4
LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBj
dXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdf
Y3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwog
ICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRo
X3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRh
dGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5k
X3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVb
J3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVf
dGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawog
ICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpB
c3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMg
dGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0
b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lw
ZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJf
dmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVw
YXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAg
ICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxk
CiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJi
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1
aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdl
dGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5f
ZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNo
X2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0g
Y29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBs
aW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJz
b3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IK
ICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYu
ZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGls
cy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwg
ZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGlu
IHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50
aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2
MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxm
LmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVf
aW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUo
ZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1h
dGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXll
cl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBf
Z2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBk
YXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2Fu
ZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRl
Wyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3Jl
X3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sK
ICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10K
QXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlk
ZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJv
cgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRf
dGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlv
bl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dl
dF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmog
PSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1
cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9y
bV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5w
eSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5n
ZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2Vs
Zi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhl
Y3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4g
ZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9
IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5l
Y3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUg
OTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVl
LCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAg
IHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdv
LmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
NjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2Vs
Zi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
dXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRl
X2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0
YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0
b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rh
c2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRh
J10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2
MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0
IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25F
cnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0
b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0
ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1h
dGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4g
X2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9v
YmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9l
bnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxm
Lm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdl
ci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2Vs
Zi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAg
c2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIu
ZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwg
aW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNv
ciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nv
bm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxp
bmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UK
ICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGph
bmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4g
c2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5z
dXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5v
cm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3Qg
PSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIu
cHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYu
Z2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNl
bGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4
ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGlu
IGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3Ig
PSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25u
ZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5l
IDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1
ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAg
ICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5n
by5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNh
dXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVf
bG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAg
ICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxk
CiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJi
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1
aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdl
dGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5f
ZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNo
X2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0g
Y29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBs
aW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJz
b3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IK
ICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYu
ZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGls
cy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwg
ZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGlu
IHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRo
ZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9s
b2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9l
bnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAg
ICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2Fy
Z3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0g
bGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9f
CiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1
LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAg
IHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21w
aWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25u
ZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIs
IGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJz
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNv
cgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRq
X2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBs
aW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQs
IGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5k
X3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3Jl
X3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tk
YXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNz
ZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRp
b25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0
YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZv
cm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwg
aW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lv
bl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIg
aW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVu
dChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGlu
IHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVw
ZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5h
bF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1Nywg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0
aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRh
c2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJv
bV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lv
bl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXll
cl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRf
c3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVf
dGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2Rh
dGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGlu
IHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9i
dWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dy
YXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5Iiwg
bGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9x
dWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9y
ZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRl
X3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVj
dXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2Vs
Zi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlv
bigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwg
aW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRy
YWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFp
c2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIu
dXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19l
dmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVy
IGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGlu
IHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRl
cm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1
NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9y
bWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50
LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25f
ZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVy
c2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9s
YXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9h
bmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3Rv
cmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFz
a2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQs
IGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZv
bGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3Vy
ZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3Jt
X3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0g
QnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5
IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdl
dF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxm
Ll9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVj
dXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBl
eGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0g
c2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVj
dGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5
OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUs
IHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAg
cmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28u
ZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xv
Z19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAg
c2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAog
ICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWls
ZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRh
dHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2Zl
dGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9h
bGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNv
bXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGlu
ZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29y
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAg
ICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVu
c3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMu
cHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRq
X2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiBy
ZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlm
aWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIs
IGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5p
bnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93
aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2lu
Zm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2
ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRp
b25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJf
dmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dl
dF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0
ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRf
c3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsn
dGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1
ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQo
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBz
ZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRh
dGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxf
c3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlv
biA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNr
ZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21f
dGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25f
Zm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJf
dmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0
b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rh
c2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRh
J10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24g
d2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBz
dG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2Jq
ZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4g
bWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5h
bWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwg
aW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9
IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4
LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBj
dXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdf
Y3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwog
ICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRo
X3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dp
bmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2Yg
dGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZl
bnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYu
X2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNl
bGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1
ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5h
Z2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihz
ZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9h
bGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAg
ICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxl
ci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4
LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vy
c29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVf
Y29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5Iiwg
bGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNf
dmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlz
ZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpk
amFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBp
biBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1
cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJu
YWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcs
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1h
dGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50
YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zy
b21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNp
b25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5
ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5k
X3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3Jl
X3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tk
YXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBp
biBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIs
IGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5p
bnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBk
YXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2Fu
ZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRl
Wyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBz
ZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tm
aWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9w
YXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNp
b25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAg
ICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFz
c2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVf
bG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0
LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRh
dGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxf
c3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRf
c3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVf
dGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2Rh
dGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDks
IGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0
X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAg
bGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2Nh
bGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9w
YXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3
NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0
IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25F
cnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0
b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVu
dAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9i
dWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxm
LmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAg
ICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVy
biBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xv
bmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNl
bGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9m
ZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0
cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5
IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24u
Y3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vy
c29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBz
ZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
dXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5
cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1
LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQs
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBp
ZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJy
b3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4g
c2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFz
ayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVj
aXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tm
aWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5m
b3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRf
bGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwg
aW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0
ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9z
dGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51
cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVf
YW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3Rh
dGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3Rv
cmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFz
awogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEn
XQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGlu
IHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3Jl
Y2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5
ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZp
bGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRo
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlk
ZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJv
cgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVf
bG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0
LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRh
dGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxf
c3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRf
c3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVf
dGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2Rh
dGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDks
IGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0
X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAg
bGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2Nh
bGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9w
YXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24g
d2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBp
biBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9y
ZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxh
eWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxm
aWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0
aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9i
dWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxm
LmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAg
ICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVy
biBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xv
bmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNl
bGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9m
ZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0
cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5
IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24u
Y3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vy
c29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBz
ZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
dXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5
cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1
LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdh
cyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4g
c3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVj
aXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXll
cl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmls
ZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgK
ICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVp
bGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5i
cmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAg
YnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4g
Z2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25l
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxm
Ll9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0
Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMg
PSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIs
IGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1
cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNv
cgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2Vs
Zi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0
aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBl
LCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwg
aW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMg
dGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0
b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lw
ZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJf
dmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVw
YXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAg
ICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxk
CiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJi
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1
aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdl
dGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5f
ZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNo
X2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0g
Y29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBs
aW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJz
b3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IK
ICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYu
ZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGls
cy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwg
ZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGlu
IHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRo
ZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9y
ZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVf
aW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEw
MzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3Zl
cnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0
aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAg
c2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAog
ICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWls
ZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRh
dHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2Zl
dGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9h
bGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNv
bXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGlu
ZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29y
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAg
ICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVu
c3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMu
cHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRq
X2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiBy
ZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlm
aWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2df
ZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNl
bGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAg
IHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRy
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9t
YW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0
cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRj
aF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxs
CiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21w
aWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUg
ODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAg
Y3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1
cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5
IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9l
eGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVy
YWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19l
dmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4g
c3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93
aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2
ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZl
bnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQg
aWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVy
cm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGlu
IHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rh
c2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJl
Y2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNr
ZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2lu
Zm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0
X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEs
IGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRh
dGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxf
c3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9n
X2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2df
ZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGlu
IHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVw
ZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9h
bmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0
ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9y
ZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNr
CiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSdd
CkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdh
cyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4g
c3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVj
aXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXll
cl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmls
ZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgK
ICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVp
bGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5i
cmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAg
YnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4g
Z2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25l
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxm
Ll9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0
Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMg
PSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIs
IGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1
cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNv
cgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2Vs
Zi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0
aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBl
LCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwg
aW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMg
dGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0
b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lw
ZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJf
dmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVw
YXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAg
ICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxk
CiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJi
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1
aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdl
dGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5f
ZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNo
X2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0g
Y29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBs
aW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJz
b3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IK
ICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYu
ZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGls
cy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwg
ZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGlu
IHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50
aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xv
Z19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAg
c2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAog
ICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWls
ZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRh
dHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2Zl
dGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9h
bGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNv
bXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGlu
ZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29y
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAg
ICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVu
c3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMu
cHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRq
X2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiBy
ZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9n
X2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBp
biBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9z
dG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90
YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0
YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAz
NjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2Vy
dCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9u
RXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFy
dGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3Jt
YXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGlu
IF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25f
b2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGlu
IHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQo
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVf
bG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0
LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2Fu
ZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9y
ZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNr
ZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFz
c2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0
aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9z
dGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5m
b3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEs
IGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNp
b25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVy
IGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2Yg
dGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZl
bnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYu
X2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNl
bGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1
ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5h
Z2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihz
ZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9h
bGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAg
ICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxl
ci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4
LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vy
c29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVf
Y29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5Iiwg
bGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNf
dmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlz
ZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpk
amFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0
b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVu
dAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9i
dWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxm
LmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAg
ICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVy
biBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xv
bmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNl
bGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9m
ZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0
cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5
IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24u
Y3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vy
c29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBz
ZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
dXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5
cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1
LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdh
cyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3Rv
cmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRl
X2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9z
dG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0
YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rh
c2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAg
IGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNz
ZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRo
ZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9y
ZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVf
aW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEw
MzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3Zl
cnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0
aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAg
c2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAog
ICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWls
ZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRh
dHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2Zl
dGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9h
bGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNv
bXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGlu
ZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29y
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAg
ICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVu
c3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMu
cHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRq
X2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiBy
ZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlm
aWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2df
ZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNl
bGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAg
IHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRy
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9t
YW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0
cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRj
aF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxs
CiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21w
aWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUg
ODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAg
Y3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1
cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5
IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9l
eGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVy
YWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19l
dmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4g
c3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3Rv
cmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFz
awogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEn
XQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYx
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQg
aWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVy
cm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0
IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3Rv
cmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRl
ZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0
aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBf
Z2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29i
aiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBz
ZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBm
b2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1
cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9y
bV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5w
eSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5n
ZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2Vs
Zi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhl
Y3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4g
ZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9
IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5l
Y3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUg
OTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVl
LCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAg
IHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdv
LmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9s
b2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xv
Z19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFz
c2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0
aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZp
ZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0
ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawog
ICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9t
X3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNp
cGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxm
Ll9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGlu
IHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRl
cm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4
OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9l
bnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxm
Lm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdl
ci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2Vs
Zi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAg
c2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIu
ZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwg
aW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNv
ciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nv
bm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxp
bmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UK
ICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGph
bmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3Qg
Y2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9y
ZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQK
ICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVp
bGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5i
cmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAg
YnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4g
Z2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25l
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxm
Ll9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0
Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMg
PSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIs
IGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1
cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNv
cgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2Vs
Zi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0
aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBl
LCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwg
aW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRl
bnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9y
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNl
bGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZv
bGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lw
ZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmls
ZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9y
bWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xh
eWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGlu
IF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51
cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVf
YW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3Rh
dGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93
aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2
ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIg
aW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4g
dXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVy
bmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3Jt
YXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQu
dGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9m
cm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJz
aW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xh
eWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2Fu
ZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9y
ZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNr
ZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwg
aW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYy
LCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYu
aW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVw
ZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9h
bmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0
ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0g
c2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNr
ZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3Jf
cGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJz
aW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVf
dGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawog
ICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpB
c3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMg
dGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3Jl
X2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4
NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODks
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5z
dXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5v
cm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3Qg
PSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIu
cHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYu
Z2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNl
bGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4
ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGlu
IGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3Ig
PSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25u
ZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5l
IDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1
ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAg
ICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5n
by5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNh
dXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVf
bG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAg
ICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxk
CiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJi
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1
aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdl
dGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5f
ZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNo
X2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0g
Y29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBs
aW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJz
b3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IK
ICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYu
ZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGls
cy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwg
ZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGlu
IHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRo
ZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9s
b2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9l
bnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAg
ICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2Fy
Z3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0g
bGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9f
CiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1
LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAg
IHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21w
aWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25u
ZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIs
IGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJz
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNv
cgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRq
X2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBs
aW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQs
IGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZv
bGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3Vy
ZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3Jt
X3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0g
QnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5
IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdl
dF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxm
Ll9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVj
dXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBl
eGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0g
c2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVj
dGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5
OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUs
IHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAg
cmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28u
ZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xv
Z19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAg
c2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAog
ICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWls
ZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRh
dHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2Zl
dGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9h
bGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNv
bXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGlu
ZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29y
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAg
ICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVu
c3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMu
cHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRq
X2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiBy
ZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9n
X2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNz
ZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRp
b25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmll
ciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRl
ZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAg
ICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21f
dGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lw
ZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYu
X2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4g
dXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVy
bmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQo
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVu
dGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
NjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2Vs
Zi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBl
X2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxl
KGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3Jt
YXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5
ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4g
X2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVw
ZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9h
bmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0
ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2Jq
ZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4g
bWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5h
bWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwg
aW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9
IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4
LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBj
dXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdf
Y3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwog
ICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRo
X3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dp
bmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2Yg
dGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZl
bnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYu
X2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNl
bGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1
ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5h
Z2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihz
ZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9h
bGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAg
ICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxl
ci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4
LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vy
c29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVf
Y29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5Iiwg
bGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNf
dmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlz
ZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpk
amFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0
b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVu
dAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9i
dWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxm
LmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAg
ICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVy
biBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xv
bmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNl
bGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9m
ZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0
cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5
IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24u
Y3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vy
c29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBz
ZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
dXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5
cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1
LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdh
cyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3Rv
cmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4
OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9l
bnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxm
Lm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdl
ci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2Vs
Zi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAg
c2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIu
ZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwg
aW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNv
ciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nv
bm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxp
bmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UK
ICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGph
bmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3Qg
Y2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9y
ZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQK
ICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVp
bGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5i
cmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAg
YnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4g
Z2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25l
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxm
Ll9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0
Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMg
PSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIs
IGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1
cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNv
cgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2Vs
Zi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0
aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBl
LCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwg
aW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMg
dGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3Jl
X2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4
NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9h
bmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3Rv
cmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFz
a2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNr
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBh
c3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2Vy
dGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVf
c3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2lu
Zm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMx
LCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJz
aW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNl
bGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAg
IHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRy
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9t
YW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0
cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRj
aF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxs
CiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21w
aWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUg
ODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAg
Y3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1
cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5
IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9l
eGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVy
YWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmll
ciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2
ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZl
bnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0
b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3Jl
X3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sK
ICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10K
QXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlk
ZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJv
cgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRf
dGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlv
bl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dl
dF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmog
PSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1
cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9y
bV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5w
eSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5n
ZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2Vs
Zi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhl
Y3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4g
ZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9
IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5l
Y3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUg
OTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVl
LCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAg
IHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdv
LmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
NjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2Vs
Zi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9n
X2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2df
ZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGlu
IHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9i
dWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dy
YXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5Iiwg
bGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9x
dWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9y
ZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRl
X3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVj
dXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2Vs
Zi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlv
bigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwg
aW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRy
YWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFp
c2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIu
dXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19l
dmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
c3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2
ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24g
d2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBz
dG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9y
ZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNr
CiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSdd
CkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEs
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBp
ZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJy
b3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3Qg
Y2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9y
ZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVk
X3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRp
b25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9n
ZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2Jq
ID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5z
dXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5v
cm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3Qg
PSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIu
cHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYu
Z2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNl
bGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4
ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGlu
IGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3Ig
PSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25u
ZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5l
IDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1
ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAg
ICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5n
by5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNl
bGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZv
bGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3Vy
ZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3Jt
X3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0g
QnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5
IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdl
dF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxm
Ll9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVj
dXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBl
eGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0g
c2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVj
dGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5
OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUs
IHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAg
cmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28u
ZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xv
Z19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAg
c2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAog
ICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWls
ZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRh
dHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2Zl
dGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9h
bGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNv
bXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGlu
ZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29y
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAg
ICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVu
c3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMu
cHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRq
X2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiBy
ZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9n
X2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNz
ZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRp
b25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmll
ciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRl
ZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAg
ICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21f
dGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lw
ZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYu
X2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4g
dXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVy
bmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQo
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVu
dGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
NjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2Vs
Zi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBl
X2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxl
KGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3Jt
YXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5
ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4g
X2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVw
ZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9h
bmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0
ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2Jq
ZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4g
bWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5h
bWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwg
aW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9
IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4
LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBj
dXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdf
Y3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwog
ICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRo
X3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dp
bmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2Yg
dGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZl
bnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYu
X2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNl
bGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1
ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5h
Z2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihz
ZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9h
bGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAg
ICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxl
ci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4
LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vy
c29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVf
Y29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5Iiwg
bGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNf
dmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlz
ZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpk
amFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0
b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVu
dAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9i
dWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxm
LmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAg
ICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVy
biBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xv
bmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNl
bGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9m
ZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0
cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5
IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24u
Y3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vy
c29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBz
ZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
dXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5
cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1
LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQs
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBp
ZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJy
b3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4g
c2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFz
ayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVj
aXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tm
aWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5m
b3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRf
bGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwg
aW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0
ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9z
dGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2df
ZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNl
bGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAg
IHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRy
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9t
YW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0
cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRj
aF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxs
CiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21w
aWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUg
ODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAg
Y3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1
cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5
IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9l
eGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVy
YWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmll
ciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBp
biB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50
ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAz
NTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZv
cm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVu
dC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9u
X2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3Zl
cnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRf
bGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVf
YW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0
b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rh
c2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0
LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBm
b2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1
cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9y
bV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5w
eSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5n
ZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2Vs
Zi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhl
Y3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4g
ZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9
IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5l
Y3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUg
OTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVl
LCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAg
IHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdv
LmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
NjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2Vs
Zi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
dXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRl
X2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0
YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24g
PSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2Zp
bGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rh
c2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zv
cl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3Zl
cnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9y
ZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNr
CiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSdd
CkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdh
cyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3Rv
cmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4
OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9l
bnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxm
Lm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdl
ci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2Vs
Zi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAg
c2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIu
ZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwg
aW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNv
ciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nv
bm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxp
bmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UK
ICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGph
bmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3Qg
Y2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9y
ZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQK
ICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVp
bGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5i
cmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAg
YnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4g
Z2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25l
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxm
Ll9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0
Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMg
PSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIs
IGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1
cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNv
cgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2Vs
Zi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0
aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBl
LCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwg
aW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMg
dGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3Jl
X2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4
NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODks
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5z
dXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5v
cm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3Qg
PSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIu
cHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYu
Z2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNl
bGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4
ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGlu
IGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3Ig
PSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25u
ZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5l
IDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1
ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAg
ICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5n
by5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNl
bGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0
ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9z
dGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9u
ID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tm
aWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90
YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9m
b3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92
ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3Rv
cmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFz
awogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEn
XQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYx
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQg
aWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVy
cm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0
IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3Rv
cmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRl
ZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0
aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBf
Z2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29i
aiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBz
ZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBm
b2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1
cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9y
bV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5w
eSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5n
ZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2Vs
Zi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhl
Y3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4g
ZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9
IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5l
Y3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUg
OTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVl
LCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAg
IHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdv
LmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9s
b2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xv
Z19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFz
c2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0
aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2df
ZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGlu
IHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0
b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rh
c2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRh
J10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2
MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0
IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25F
cnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0
b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0
ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1h
dGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4g
X2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9v
YmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9l
bnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxm
Lm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdl
ci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2Vs
Zi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAg
c2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIu
ZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwg
aW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNv
ciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nv
bm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxp
bmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UK
ICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGph
bmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4g
c2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5z
dXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5v
cm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3Qg
PSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIu
cHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYu
Z2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNl
bGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4
ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGlu
IGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3Ig
PSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25u
ZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5l
IDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1
ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAg
ICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5n
by5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNh
dXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVf
bG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAg
ICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxk
CiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJi
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1
aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdl
dGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5f
ZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNo
X2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0g
Y29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBs
aW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJz
b3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IK
ICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYu
ZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGls
cy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwg
ZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGlu
IHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRo
ZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9s
b2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9l
bnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAg
ICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2Fy
Z3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0g
bGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9f
CiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1
LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAg
IHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21w
aWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25u
ZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIs
IGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJz
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNv
cgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRq
X2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBs
aW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQs
IGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5k
X3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3Jl
X3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tk
YXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNz
ZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRp
b25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0
YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZv
cm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwg
aW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lv
bl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIg
aW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVu
dChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0
IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3Rv
cmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9y
ZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAg
ICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFz
c2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVu
dGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9z
dGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rh
c2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25f
ZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRf
cmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0g
c2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYy
LCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYu
aW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVw
ZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9h
bmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0
ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9y
ZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNr
CiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSdd
CkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdh
cyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4g
c3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVj
aXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXll
cl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmls
ZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgK
ICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVp
bGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5i
cmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAg
YnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4g
Z2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25l
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxm
Ll9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0
Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMg
PSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIs
IGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1
cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNv
cgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2Vs
Zi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0
aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBl
LCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwg
aW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRl
bnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9y
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNh
dXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVf
bG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAg
ICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxk
CiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJi
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1
aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdl
dGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5f
ZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNo
X2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0g
Y29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBs
aW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJz
b3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IK
ICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYu
ZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGls
cy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwg
ZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGlu
IHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50
aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2
MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxm
LmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVf
aW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUo
ZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1h
dGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXll
cl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBf
Z2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBk
YXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2Fu
ZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRl
Wyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3Jl
X3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sK
ICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10K
QXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlk
ZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJv
cgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRf
dGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlv
bl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dl
dF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmog
PSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1
cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9y
bV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5w
eSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5n
ZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2Vs
Zi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhl
Y3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4g
ZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9
IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5l
Y3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUg
OTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVl
LCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAg
IHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdv
LmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
NjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2Vs
Zi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
dXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRl
X2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0
YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0
b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rh
c2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRh
J10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24g
d2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBp
biBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9y
ZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxh
eWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxm
aWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0
aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9i
dWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxm
LmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAg
ICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVy
biBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xv
bmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNl
bGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9m
ZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0
cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5
IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24u
Y3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vy
c29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBz
ZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
dXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5
cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1
LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdh
cyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3Rv
cmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRl
X2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9z
dG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0
YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4
NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODks
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5z
dXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5v
cm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3Qg
PSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIu
cHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYu
Z2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNl
bGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4
ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGlu
IGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3Ig
PSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25u
ZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5l
IDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1
ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAg
ICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5n
by5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNh
dXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVf
bG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAg
ICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxk
CiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJi
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1
aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdl
dGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5f
ZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNo
X2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0g
Y29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBs
aW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJz
b3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IK
ICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYu
ZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGls
cy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwg
ZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGlu
IHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRo
ZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9s
b2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9l
bnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAg
ICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2Fy
Z3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0g
bGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9f
CiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1
LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAg
IHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21w
aWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25u
ZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIs
IGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJz
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNv
cgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRq
X2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBs
aW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQs
IGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5k
X3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3Jl
X3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tk
YXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNz
ZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRp
b25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmll
ciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRl
ZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAg
ICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21f
dGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lw
ZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYu
X2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4g
dXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVy
bmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3Jt
YXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQu
dGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9m
cm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJz
aW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xh
eWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2Fu
ZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9y
ZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNr
ZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFz
c2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0
aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZp
ZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2Miwg
aW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmlu
dGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dp
bmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
MzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5m
b3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZl
bnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlv
bl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92
ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0
X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRl
X2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9z
dG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0
YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4
NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODks
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBk
YXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFs
X3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5k
X3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3Jl
X3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tk
YXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5
LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dl
dF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAg
IGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9j
YWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3Jf
cGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
NzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2Vy
dCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9u
RXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZl
bnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0
b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0
ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRf
c3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsn
dGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAg
ICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFz
c2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3Rv
cmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBl
X2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92
ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBh
dGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRp
ZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9n
X2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZp
ZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2Miwg
aW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmlu
dGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dp
bmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
MzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5m
b3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZl
bnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlv
bl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92
ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0
X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRl
X2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9z
dG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0
YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4
NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9h
bmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3Rv
cmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFz
a2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNr
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBh
c3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2Vy
dGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVf
c3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2lu
Zm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMx
LCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJz
aW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNl
bGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAg
IHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRy
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9t
YW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0
cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRj
aF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxs
CiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21w
aWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUg
ODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAg
Y3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1
cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5
IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9l
eGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVy
YWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmll
ciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2
ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZl
bnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQg
aWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVy
cm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGlu
IHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rh
c2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJl
Y2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNr
ZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2lu
Zm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0
X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEs
IGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRh
dGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxf
c3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlv
biA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNr
ZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21f
dGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25f
Zm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJf
dmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0
b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rh
c2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRh
J10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24g
d2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBp
biBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9y
ZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxh
eWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxm
aWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0
aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9i
dWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxm
LmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAg
ICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVy
biBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xv
bmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNl
bGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9m
ZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0
cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5
IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24u
Y3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vy
c29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBz
ZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
dXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5
cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1
LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQs
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBp
ZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJy
b3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3Qg
Y2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9y
ZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQK
ICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVp
bGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5i
cmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAg
YnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4g
Z2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25l
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxm
Ll9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0
Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMg
PSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIs
IGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1
cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNv
cgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2Vs
Zi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0
aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBl
LCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwg
aW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMg
dGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3Jl
X2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4
NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODks
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBk
YXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFs
X3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5k
X3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3Jl
X3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tk
YXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5
LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dl
dF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAg
IGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9j
YWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3Jf
cGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
NzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2Vy
dCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9u
RXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZl
bnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0
b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0
ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRf
c3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsn
dGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAg
ICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFz
c2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3Rv
cmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBl
X2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92
ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBh
dGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRp
ZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9n
X2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2df
ZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGlu
IHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9i
dWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dy
YXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5Iiwg
bGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9x
dWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9y
ZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRl
X3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVj
dXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2Vs
Zi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlv
bigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwg
aW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRy
YWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFp
c2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIu
dXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2Miwg
aW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmlu
dGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRh
dGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5k
X3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVb
J3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNl
bGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2Zp
bGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3Bh
dGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lv
bl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4
NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9h
bmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3Rv
cmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFz
a2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQs
IGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5k
X3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3Jl
X3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tk
YXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNz
ZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRp
b25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0
YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZv
cm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwg
aW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lv
bl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZl
bnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0
b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3Jl
X3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sK
ICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10K
QXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlk
ZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJv
cgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBz
ZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBm
b2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNr
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNp
cGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2Zp
bGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZv
cm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9s
YXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBp
biBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9n
X2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2df
ZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3Nl
cnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlv
bkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
c3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2
ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3
NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0
IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25F
cnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0
b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVu
dAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9i
dWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxm
LmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAg
ICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVy
biBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xv
bmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNl
bGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9m
ZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0
cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5
IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24u
Y3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vy
c29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBz
ZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
dXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5
cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1
LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEs
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBp
ZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJy
b3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3Qg
Y2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9y
ZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVk
X3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRp
b25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9n
ZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2Jq
ID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5z
dXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5v
cm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3Qg
PSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIu
cHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYu
Z2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNl
bGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4
ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGlu
IGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3Ig
PSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25u
ZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5l
IDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1
ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAg
ICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5n
by5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNh
dXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVf
bG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAg
ICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxk
CiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJi
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1
aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdl
dGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5f
ZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNo
X2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0g
Y29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBs
aW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJz
b3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IK
ICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYu
ZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGls
cy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwg
ZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGlu
IHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50
aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2
MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxm
LmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVf
aW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUo
ZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1h
dGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXll
cl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBf
Z2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBk
YXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2Fu
ZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRl
Wyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
ODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4g
dXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVy
bmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQo
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVf
bG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0
LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRh
dGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxf
c3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRf
c3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVf
dGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2Rh
dGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3Nl
cnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlv
bkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
c3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3Rh
cnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9y
bWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBp
biBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9u
X29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYu
X2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNl
bGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1
ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5h
Z2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihz
ZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9h
bGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAg
ICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxl
ci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4
LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vy
c29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVf
Y29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5Iiwg
bGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNf
dmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlz
ZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpk
amFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBp
biBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICBy
ZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFz
a2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9p
bmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dl
dF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAx
LCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBk
YXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFs
X3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5k
X3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3Jl
X3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tk
YXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBp
biBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2df
ZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNl
bGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAg
IHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRy
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9t
YW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0
cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRj
aF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxs
CiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21w
aWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUg
ODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAg
Y3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1
cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5
IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9l
eGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVy
YWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19l
dmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4g
c3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBk
YXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2Fu
ZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRl
Wyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3Jl
X3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sK
ICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10K
QXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBz
dG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNp
cGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVy
X3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxl
cGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3Rv
cmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBl
X2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92
ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBh
dGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRp
ZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYy
LCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYu
aW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9p
bmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShl
dmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0
aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVy
X3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9n
ZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2Jq
ZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4g
bWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5h
bWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwg
aW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9
IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4
LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBj
dXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdf
Y3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwog
ICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRo
X3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRh
dGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5k
X3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVb
J3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVf
dGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawog
ICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpB
c3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMg
dGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3Jl
X2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4
NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODks
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5z
dXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5v
cm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3Qg
PSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIu
cHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYu
Z2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNl
bGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4
ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGlu
IGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3Ig
PSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25u
ZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5l
IDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1
ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAg
ICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5n
by5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNh
dXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVf
bG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAg
ICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxk
CiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJi
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1
aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdl
dGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5f
ZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNo
X2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0g
Y29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBs
aW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJz
b3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IK
ICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYu
ZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGls
cy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwg
ZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGlu
IHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRo
ZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9s
b2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9l
bnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAg
ICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2Fy
Z3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0g
bGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9f
CiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1
LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAg
IHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21w
aWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25u
ZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIs
IGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJz
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNv
cgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRq
X2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBs
aW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNr
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBh
c3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2Vy
dGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlm
aWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFy
dGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sK
ICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJv
bV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVj
aXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2Vs
Zi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBp
biB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50
ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0
ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRf
c3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsn
dGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2Vs
Zi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmls
ZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0
aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9u
X2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFz
ayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAg
YXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3Nl
cnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3Jl
X3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9p
bmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAz
MSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVy
c2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZp
ZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0
ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawog
ICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9t
X3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNp
cGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxm
Ll9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGlu
IHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRl
cm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1
NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9y
bWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50
LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25f
ZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVy
c2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9s
YXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9h
bmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3Rv
cmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFz
a2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
MDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5f
Z2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQog
ICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChs
b2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zv
cl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNz
ZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRp
b25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0
YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZv
cm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwg
aW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lv
bl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIg
aW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRf
dGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAg
cmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rh
c2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVf
aW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9n
ZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAw
MSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVw
ZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5h
bF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1Nywg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0
aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRh
c2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJv
bV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lv
bl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXll
cl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRf
c3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVf
dGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2Rh
dGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDks
IGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0
X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAg
bGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2Nh
bGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9w
YXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2
MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0
IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25F
cnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0
b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0
ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1h
dGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4g
X2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9v
YmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9l
bnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxm
Lm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdl
ci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2Vs
Zi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAg
c2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIu
ZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwg
aW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNv
ciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nv
bm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxp
bmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UK
ICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGph
bmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4g
c2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFz
ayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVj
aXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tm
aWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5m
b3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRf
bGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwg
aW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0
ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9z
dGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9z
dG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90
YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0
YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwg
aW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRf
cmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBs
YXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2Fs
ZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3Bh
dGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYx
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQg
aWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVy
cm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0
IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3Rv
cmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRl
ZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0
aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBf
Z2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29i
aiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBz
ZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBm
b2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNr
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNp
cGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2Zp
bGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZv
cm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9s
YXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBp
biBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
dXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRl
X2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0
YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24g
PSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2Zp
bGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rh
c2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zv
cl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3Zl
cnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9y
ZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNr
CiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSdd
CkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdh
cyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4g
c3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVj
aXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXll
cl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmls
ZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgK
ICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVp
bGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5i
cmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAg
YnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4g
Z2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25l
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxm
Ll9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0
Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMg
PSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIs
IGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1
cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNv
cgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2Vs
Zi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0
aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBl
LCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwg
aW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMg
dGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0
b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lw
ZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJf
dmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVw
YXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAg
ICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxk
CiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJi
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1
aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdl
dGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5f
ZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNo
X2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0g
Y29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBs
aW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJz
b3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IK
ICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYu
ZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGls
cy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwg
ZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGlu
IHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50
aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0
YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFz
awogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9m
cm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9y
ZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBz
ZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIs
IGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5p
bnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93
aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2lu
Zm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2
ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRp
b25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJf
dmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dl
dF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0
ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRf
c3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsn
dGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2Vs
Zi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmls
ZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0
aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9u
X2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFz
ayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAg
YXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3Nl
cnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3Jl
X3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9p
bmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAz
MSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVy
c2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZp
ZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0
ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawog
ICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9t
X3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNp
cGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxm
Ll9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGlu
IHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRl
cm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1
NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9y
bWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50
LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25f
ZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVy
c2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9s
YXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9h
bmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3Rv
cmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFz
a2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
MDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5f
Z2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQog
ICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChs
b2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zv
cl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNz
ZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRp
b25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0
YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZv
cm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwg
aW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lv
bl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIg
aW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRf
dGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAg
cmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rh
c2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVf
aW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9n
ZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAw
MSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVw
ZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5h
bF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1Nywg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0
aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRh
c2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJv
bV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lv
bl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXll
cl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRf
c3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVf
dGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2Rh
dGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDks
IGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0
X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAg
bGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2Nh
bGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9w
YXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2
MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0
IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25F
cnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0
b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0
ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1h
dGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4g
X2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9v
YmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9l
bnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxm
Lm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdl
ci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2Vs
Zi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAg
c2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIu
ZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwg
aW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNv
ciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nv
bm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxp
bmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UK
ICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGph
bmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4g
c2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFz
ayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVj
aXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tm
aWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5m
b3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRf
bGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwg
aW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0
ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9z
dGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9u
ID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tm
aWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90
YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9m
b3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92
ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3Rv
cmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFz
awogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEn
XQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGlu
IHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3Jl
Y2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5
ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZp
bGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRo
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlk
ZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJv
cgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRf
dGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlv
bl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dl
dF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmog
PSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1
cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9y
bV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5w
eSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5n
ZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2Vs
Zi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhl
Y3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4g
ZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9
IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5l
Y3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUg
OTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVl
LCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAg
IHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdv
LmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
NjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2Vs
Zi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBl
X2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxl
KGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3Jt
YXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5
ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4g
X2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVw
ZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9h
bmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0
ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0g
c2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNr
ZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3Jf
cGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJz
aW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVf
dGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawog
ICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpB
c3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMg
dGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0
b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lw
ZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJf
dmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVw
YXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAg
ICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxk
CiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJi
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1
aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdl
dGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5f
ZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNo
X2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0g
Y29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBs
aW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJz
b3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IK
ICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYu
ZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGls
cy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwg
ZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGlu
IHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50
aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0
YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFz
awogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9m
cm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9y
ZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBz
ZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIs
IGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5p
bnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93
aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2lu
Zm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2
ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRp
b25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJf
dmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dl
dF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0
ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRf
c3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsn
dGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2Vs
Zi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmls
ZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0
aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9u
X2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFz
ayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAg
YXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3Nl
cnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3Jl
X3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9p
bmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAz
MSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVy
c2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZp
ZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0
ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawog
ICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9t
X3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNp
cGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxm
Ll9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGlu
IHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRl
cm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1
NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9y
bWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50
LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25f
ZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVy
c2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9s
YXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9h
bmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3Rv
cmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFz
a2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQs
IGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRp
b24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFz
a2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9t
X3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9u
X2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVy
X3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9z
dG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90
YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0
YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwg
aW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRf
cmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBs
YXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2Fs
ZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3Bh
dGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYx
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQg
aWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVy
cm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0
IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3Rv
cmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRl
ZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0
aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBf
Z2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29i
aiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBz
ZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBm
b2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNr
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNp
cGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2Zp
bGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZv
cm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9s
YXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBp
biBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
dXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRl
X2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0
YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24g
PSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2Zp
bGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rh
c2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zv
cl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3Zl
cnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9y
ZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNr
CiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSdd
CkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdh
cyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4g
c3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVj
aXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXll
cl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmls
ZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgK
ICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVp
bGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5i
cmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAg
YnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4g
Z2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25l
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxm
Ll9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0
Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMg
PSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIs
IGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1
cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNv
cgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2Vs
Zi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0
aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBl
LCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwg
aW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRl
bnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9y
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNh
dXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVf
c3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90
YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9u
X2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0
X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9
IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3Vy
ZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3Jt
X3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0g
QnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5
IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdl
dF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxm
Ll9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVj
dXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBl
eGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0g
c2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVj
dGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5
OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUs
IHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAg
cmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28u
ZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2
MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxm
LmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVf
aW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUo
ZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1h
dGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXll
cl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBf
Z2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBk
YXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2Fu
ZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRl
Wyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBz
ZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tm
aWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9w
YXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNp
b25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAg
ICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFz
c2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3Rv
cmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBl
X2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92
ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBh
dGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRp
ZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3Rh
cnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNr
CiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zy
b21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3Jl
Y2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNl
bGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9i
dWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dy
YXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5Iiwg
bGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9x
dWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9y
ZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRl
X3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVj
dXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2Vs
Zi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlv
bigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwg
aW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRy
YWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFp
c2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIu
dXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2Miwg
aW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmlu
dGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dp
bmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
MzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5m
b3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZl
bnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlv
bl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92
ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0
X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1
NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9y
bWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50
LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25f
ZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVy
c2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9s
YXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9h
bmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3Rv
cmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFz
a2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
MDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5f
Z2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQog
ICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChs
b2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zv
cl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNz
ZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRp
b25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0
YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZv
cm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwg
aW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lv
bl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIg
aW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRf
dGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAg
cmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rh
c2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVf
aW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9n
ZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAw
MSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVw
ZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5h
bF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1Nywg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0
aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRh
c2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJv
bV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lv
bl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXll
cl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRf
c3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVf
dGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2Rh
dGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDks
IGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0
X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAg
bGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2Nh
bGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9w
YXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2
MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0
IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25F
cnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0
b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0
ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1h
dGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4g
X2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9v
YmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9l
bnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxm
Lm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdl
ci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2Vs
Zi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAg
c2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIu
ZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwg
aW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNv
ciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nv
bm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxp
bmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UK
ICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGph
bmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4g
c2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFz
ayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVj
aXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tm
aWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5m
b3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRf
bGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwg
aW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0
ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9z
dGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9u
ID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tm
aWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90
YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9m
b3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92
ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3Rv
cmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFz
awogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEn
XQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGlu
IHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3Jl
Y2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5
ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZp
bGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRo
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlk
ZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJv
cgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRf
dGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlv
bl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dl
dF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmog
PSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1
cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9y
bV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5w
eSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5n
ZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2Vs
Zi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhl
Y3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4g
ZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9
IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5l
Y3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUg
OTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVl
LCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAg
IHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdv
LmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
NjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2Vs
Zi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBl
X2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxl
KGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3Jt
YXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5
ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4g
X2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVw
ZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9h
bmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0
ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0g
c2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNr
ZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3Jf
cGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJz
aW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVf
dGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawog
ICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpB
c3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMg
dGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0
b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lw
ZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJf
dmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVw
YXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAg
ICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxk
CiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJi
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1
aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdl
dGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5f
ZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNo
X2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0g
Y29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBs
aW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJz
b3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IK
ICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYu
ZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGls
cy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwg
ZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGlu
IHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50
aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xv
Z19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAg
c2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAog
ICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWls
ZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRh
dHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2Zl
dGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9h
bGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNv
bXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGlu
ZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29y
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAg
ICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVu
c3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMu
cHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRq
X2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiBy
ZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9n
X2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBp
biBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9z
dG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90
YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0
YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAz
NjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2Vy
dCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9u
RXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZl
bnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQg
aWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVy
cm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGlu
IHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rh
c2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJl
Y2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNr
ZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2lu
Zm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0
X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEs
IGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRh
dGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxf
c3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
dXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRl
X2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0
YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0
b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rh
c2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRh
J10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24g
d2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBp
biBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9y
ZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxh
eWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxm
aWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0
aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9i
dWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxm
LmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAg
ICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVy
biBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xv
bmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNl
bGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9m
ZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0
cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5
IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24u
Y3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vy
c29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBz
ZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
dXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5
cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1
LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQs
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBp
ZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJy
b3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3Qg
Y2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9y
ZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQK
ICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVp
bGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5i
cmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAg
YnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4g
Z2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25l
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxm
Ll9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0
Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMg
PSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIs
IGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1
cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNv
cgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2Vs
Zi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0
aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBl
LCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwg
aW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMg
dGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3Jl
X2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rh
c2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAg
IGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNz
ZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50
aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0
YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFz
awogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9m
cm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9y
ZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBz
ZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIs
IGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5p
bnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBk
YXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2Fu
ZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRl
Wyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3Jl
X3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sK
ICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10K
QXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBz
dG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNp
cGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVy
X3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxl
cGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVu
dGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9s
b2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xv
Z19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwg
aW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYy
LCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYu
aW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVw
ZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9h
bmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0
ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0g
c2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNr
ZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3Jf
cGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJz
aW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVf
dGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawog
ICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpB
c3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMg
dGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3Jl
X2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4
NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODks
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBk
YXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFs
X3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5k
X3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3Jl
X3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tk
YXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5
LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dl
dF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAg
IGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9j
YWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3Jf
cGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
NzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2Vy
dCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9u
RXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZl
bnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQg
aWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVy
cm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGlu
IHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rh
c2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJl
Y2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNr
ZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2lu
Zm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0
X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEs
IGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBm
b2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNr
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNp
cGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2Zp
bGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZv
cm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9s
YXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBp
biBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
dXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRl
X2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0
YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0
b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rh
c2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRh
J10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3
NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0
IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25F
cnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBp
biBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICBy
ZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFz
a2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9p
bmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dl
dF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAx
LCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBk
YXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFs
X3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0
ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9z
dGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9z
dG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90
YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0
YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwg
aW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRf
cmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBs
YXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2Fs
ZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3Bh
dGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQg
aWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVy
cm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0
IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3Rv
cmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9y
ZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1
ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVw
ZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5h
bF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2Fu
ZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9y
ZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNr
ZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIw
OSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9n
ZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAg
ICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxv
Y2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9y
X3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDks
IGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0
X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAg
bGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2Nh
bGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9w
YXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2
MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0
IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25F
cnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0
b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVu
dAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9i
dWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxm
LmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAg
ICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVy
biBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xv
bmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNl
bGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9m
ZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0
cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5
IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24u
Y3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vy
c29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBz
ZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
dXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5
cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1
LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdh
cyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3Rv
cmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVf
dGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawog
ICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpB
c3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRl
bnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9y
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNl
bGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZv
bGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lw
ZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmls
ZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9y
bWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xh
eWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGlu
IF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51
cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVf
YW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3Rh
dGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93
aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBp
biB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50
ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0
ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRf
c3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsn
dGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2Vs
Zi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmls
ZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0
aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9u
X2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFz
ayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAg
YXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3Nl
cnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xv
Z19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFz
c2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0
aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZp
ZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0
ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawog
ICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9t
X3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNp
cGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxm
Ll9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGlu
IHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRl
cm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRl
X2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9z
dG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0
YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rh
c2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAg
IGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNz
ZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRo
ZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9y
ZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVf
aW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEw
MzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3Zl
cnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0
aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAg
c2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAog
ICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWls
ZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRh
dHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2Zl
dGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9h
bGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNv
bXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGlu
ZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29y
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAg
ICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVu
c3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMu
cHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRq
X2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiBy
ZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlm
aWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIs
IGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5p
bnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBk
YXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2Fu
ZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRl
Wyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBz
ZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tm
aWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9w
YXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNp
b25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAg
ICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFz
c2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVf
bG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0
LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRh
dGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxf
c3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRf
c3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVf
dGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2Rh
dGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDks
IGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0
X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAg
bGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2Nh
bGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9w
YXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24g
d2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBp
biBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9y
ZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxh
eWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxm
aWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0
aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9i
dWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxm
LmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAg
ICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVy
biBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xv
bmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNl
bGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9m
ZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0
cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5
IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24u
Y3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vy
c29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBz
ZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
dXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5
cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1
LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEs
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBp
ZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJy
b3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4g
c2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5z
dXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5v
cm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3Qg
PSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIu
cHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYu
Z2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNl
bGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4
ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGlu
IGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3Ig
PSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25u
ZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5l
IDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1
ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAg
ICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5n
by5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNh
dXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVf
bG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAg
ICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxk
CiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJi
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1
aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdl
dGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5f
ZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNo
X2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0g
Y29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBs
aW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJz
b3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IK
ICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYu
ZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGls
cy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwg
ZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGlu
IHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRo
ZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9s
b2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9l
bnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAg
ICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2Fy
Z3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0g
bGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9f
CiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1
LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAg
IHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21w
aWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25u
ZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIs
IGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJz
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNv
cgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRq
X2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBs
aW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQs
IGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZv
bGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3Vy
ZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3Jt
X3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0g
QnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5
IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdl
dF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxm
Ll9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVj
dXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBl
eGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0g
c2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVj
dGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5
OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUs
IHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAg
cmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28u
ZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2
MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxm
LmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51
cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVf
YW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3Rh
dGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9
IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmls
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFz
a2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9y
X3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVy
c2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3Jl
X3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sK
ICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10K
QXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlk
ZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJv
cgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBz
ZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBm
b2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNr
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNp
cGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2Zp
bGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZv
cm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9s
YXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBp
biBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
dXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRl
X2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0
YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9i
dWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dy
YXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5Iiwg
bGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9x
dWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9y
ZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRl
X3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVj
dXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2Vs
Zi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlv
bigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwg
aW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRy
YWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFp
c2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIu
dXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2Miwg
aW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmlu
dGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRh
dGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5k
X3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVb
J3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNl
bGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2Zp
bGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3Bh
dGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lv
bl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rh
c2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAg
IGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNz
ZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRo
ZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9s
b2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9l
bnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAg
ICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2Fy
Z3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0g
bGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9f
CiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1
LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAg
IHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21w
aWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25u
ZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIs
IGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJz
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNv
cgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRq
X2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBs
aW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNr
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBh
c3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2Vy
dGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlm
aWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFy
dGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sK
ICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJv
bV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVj
aXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2Vs
Zi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBp
biB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50
ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
ODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVu
dChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGlu
IHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVw
ZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5h
bF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1Nywg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0
aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRh
c2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJv
bV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lv
bl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXll
cl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRf
c3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVf
dGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2Rh
dGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGlu
IHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0
b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rh
c2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRh
J10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2
MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0
IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25F
cnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0
b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0
ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1h
dGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4g
X2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9v
YmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9l
bnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxm
Lm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdl
ci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2Vs
Zi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAg
c2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIu
ZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwg
aW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNv
ciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nv
bm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxp
bmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UK
ICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGph
bmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4g
c2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBk
YXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFs
X3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5k
X3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3Jl
X3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tk
YXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5
LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dl
dF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAg
IGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9j
YWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3Jf
cGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
NzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2Vy
dCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9u
RXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZl
bnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQg
aWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVy
cm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGlu
IHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rh
c2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJl
Y2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNr
ZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2lu
Zm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0
X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEs
IGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRh
dGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxf
c3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9n
X2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2df
ZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3Nl
cnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlv
bkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVy
IGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2Yg
dGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVk
X3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAg
IHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90
YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBl
X2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5f
Z2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEw
MDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1
cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJu
YWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODks
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBk
YXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFs
X3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5k
X3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3Jl
X3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tk
YXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5
LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dl
dF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAg
IGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9j
YWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3Jf
cGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwg
aW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRf
cmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBs
YXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2Fs
ZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3Bh
dGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQg
aWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVy
cm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGlu
IHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVw
ZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5h
bF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2Fu
ZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9y
ZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNr
ZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFz
c2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0
aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9z
dGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5m
b3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEs
IGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNp
b25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVy
IGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGlu
IHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRl
cm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRl
X2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9z
dG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0
YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxm
Ll9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxl
CiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRo
KGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25f
Zm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9l
bnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAg
ICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2Fy
Z3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0g
bGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9f
CiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1
LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAg
IHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21w
aWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25u
ZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIs
IGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJz
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNv
cgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRq
X2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBs
aW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNr
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBh
c3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2Vy
dGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlm
aWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2df
ZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNl
bGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAg
IHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRy
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9t
YW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0
cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRj
aF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxs
CiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21w
aWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUg
ODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAg
Y3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1
cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5
IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9l
eGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVy
YWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19l
dmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4g
c3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3Rv
cmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFz
awogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEn
XQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYx
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQg
aWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVy
cm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0
IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3Rv
cmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRl
ZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0
aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBf
Z2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29i
aiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBz
ZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBm
b2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1
cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9y
bV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5w
eSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5n
ZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2Vs
Zi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhl
Y3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4g
ZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9
IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5l
Y3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUg
OTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVl
LCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAg
IHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdv
LmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9s
b2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xv
Z19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwg
aW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9n
X2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2df
ZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3Nl
cnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlv
bkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVy
IGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2Yg
dGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVk
X3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAg
IHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90
YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBl
X2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5f
Z2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEw
MDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1
cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJu
YWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODks
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5z
dXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5v
cm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3Qg
PSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIu
cHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYu
Z2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNl
bGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4
ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGlu
IGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3Ig
PSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25u
ZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5l
IDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1
ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAg
ICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5n
by5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNh
dXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVf
bG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAg
ICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxk
CiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJi
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1
aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdl
dGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5f
ZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNo
X2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0g
Y29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBs
aW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJz
b3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IK
ICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYu
ZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGls
cy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwg
ZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGlu
IHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRo
ZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9s
b2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9l
bnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAg
ICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2Fy
Z3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0g
bGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9f
CiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1
LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAg
IHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21w
aWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25u
ZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIs
IGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJz
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNv
cgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRq
X2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBs
aW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNr
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBh
c3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2Vy
dGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlm
aWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFy
dGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sK
ICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJv
bV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVj
aXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2Vs
Zi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBp
biB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50
ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
ODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVu
dChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGlu
IHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVw
ZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5h
bF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1Nywg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0
aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRh
c2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJv
bV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lv
bl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXll
cl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlv
biA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNr
ZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21f
dGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25f
Zm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJf
dmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0
b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rh
c2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRh
J10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3
NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0
IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25F
cnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBp
biBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1
cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJu
YWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcs
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1h
dGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50
YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zy
b21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNp
b25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5
ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5k
X3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3Jl
X3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tk
YXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBp
biBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9z
dG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90
YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0
YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAz
NjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2Vy
dCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9u
RXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFy
dGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3Jt
YXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGlu
IF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25f
b2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGlu
IHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQo
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVf
bG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0
LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2Fu
ZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9y
ZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNr
ZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFz
c2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0
aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9z
dGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5m
b3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEs
IGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNp
b25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
c3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3Rh
cnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9y
bWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBp
biBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9u
X29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYu
X2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNl
bGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1
ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5h
Z2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihz
ZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9h
bGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAg
ICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxl
ci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4
LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vy
c29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVf
Y29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5Iiwg
bGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNf
dmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlz
ZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpk
amFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBp
biBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1
cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJu
YWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9h
bmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3Rv
cmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFz
a2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNr
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBh
c3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2Vy
dGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVf
c3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2lu
Zm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMx
LCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJz
aW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNl
bGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAg
IHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRy
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9t
YW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0
cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRj
aF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxs
CiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21w
aWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUg
ODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAg
Y3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1
cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5
IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9l
eGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVy
YWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmll
ciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2
ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZl
bnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQg
aWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVy
cm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGlu
IHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rh
c2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJl
Y2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNr
ZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2lu
Zm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0
X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEs
IGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRh
dGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxf
c3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9n
X2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZp
ZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2Miwg
aW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmlu
dGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dp
bmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
MzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5m
b3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZl
bnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlv
bl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92
ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0
X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1
NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9y
bWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50
LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25f
ZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVy
c2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9s
YXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9h
bmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3Rv
cmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFz
a2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNr
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBh
c3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2Vy
dGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9n
X2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBp
biBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIs
IGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5p
bnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBk
YXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2Fu
ZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRl
Wyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBz
ZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tm
aWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9w
YXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNp
b25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAg
ICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFz
c2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVf
bG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFz
ayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAg
YXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3Nl
cnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRp
ZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3Rh
cnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNr
CiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zy
b21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3Jl
Y2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNl
bGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9i
dWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dy
YXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5Iiwg
bGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9x
dWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9y
ZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRl
X3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVj
dXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2Vs
Zi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlv
bigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwg
aW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRy
YWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFp
c2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIu
dXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2Miwg
aW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmlu
dGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dp
bmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGlu
IHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRl
cm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRl
X2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9z
dG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0
YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxm
Ll9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxl
CiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRo
KGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25f
Zm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9l
bnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAg
ICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2Fy
Z3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0g
bGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9f
CiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1
LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAg
IHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21w
aWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25u
ZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIs
IGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJz
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNv
cgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRq
X2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBs
aW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNr
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBh
c3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2Vy
dGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9n
X2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBp
biBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIs
IGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5p
bnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBk
YXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2Fu
ZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRl
Wyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBz
ZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tm
aWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9w
YXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNp
b25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAg
ICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFz
c2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVf
bG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0
LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBm
b2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1
cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9y
bV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5w
eSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5n
ZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2Vs
Zi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhl
Y3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4g
ZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9
IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5l
Y3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUg
OTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVl
LCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAg
IHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdv
LmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9s
b2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xv
Z19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwg
aW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYy
LCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYu
aW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVw
ZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9h
bmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0
ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0g
c2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNr
ZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3Jf
cGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJz
aW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNl
bGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2Zp
bGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3Bh
dGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lv
bl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxm
Ll9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxl
CiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRo
KGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25f
Zm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9l
bnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAg
ICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2Fy
Z3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0g
bGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9f
CiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1
LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAg
IHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21w
aWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25u
ZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIs
IGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJz
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNv
cgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRq
X2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBs
aW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
MDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5f
Z2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQog
ICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChs
b2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zv
cl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNz
ZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRp
b25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmll
ciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBp
biB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50
ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
ODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4g
dXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVy
bmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVw
ZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5h
bF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2Fu
ZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9y
ZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNr
ZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIw
OSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9n
ZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAg
ICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxv
Y2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9y
X3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGlu
IHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0
b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rh
c2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRh
J10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24g
d2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBz
dG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2Jq
ZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4g
bWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5h
bWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwg
aW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9
IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4
LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBj
dXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdf
Y3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwog
ICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRo
X3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRh
dGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5k
X3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVb
J3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVf
dGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawog
ICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpB
c3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMg
dGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0
b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lw
ZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJf
dmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVw
YXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAg
ICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxk
CiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJi
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1
aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdl
dGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5f
ZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNo
X2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0g
Y29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBs
aW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJz
b3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IK
ICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYu
ZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGls
cy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwg
ZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGlu
IHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50
aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xv
Z19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAg
c2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAog
ICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWls
ZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRh
dHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2Zl
dGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9h
bGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNv
bXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGlu
ZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29y
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAg
ICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVu
c3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMu
cHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRq
X2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiBy
ZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlm
aWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIs
IGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5p
bnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93
aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2lu
Zm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2
ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRp
b25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJf
dmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dl
dF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0
ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRf
c3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsn
dGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1
ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVw
ZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5h
bF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2Fu
ZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9y
ZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNr
ZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwg
aW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlv
biA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNr
ZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21f
dGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25f
Zm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJf
dmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24g
PSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2Zp
bGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rh
c2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zv
cl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3Zl
cnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9y
ZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNr
CiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSdd
CkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQs
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBp
ZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJy
b3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4g
c2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFz
ayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVj
aXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tm
aWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5m
b3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRf
bGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwg
aW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0
ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9z
dGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9z
dG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90
YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0
YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4g
c3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93
aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2
ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIg
aW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4g
dXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVy
bmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3Jt
YXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQu
dGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9m
cm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJz
aW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xh
eWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2Fu
ZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9y
ZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNr
ZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwg
aW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRf
c3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVf
dGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2Rh
dGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
MzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3Nl
cnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlv
bkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
c3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3Rh
cnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9y
bWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBp
biBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9u
X29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYu
X2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNl
bGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1
ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5h
Z2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihz
ZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9h
bGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAg
ICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxl
ci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4
LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vy
c29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVf
Y29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5Iiwg
bGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNf
dmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlz
ZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpk
amFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBp
biBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9l
bnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxm
Lm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdl
ci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2Vs
Zi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAg
c2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIu
ZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwg
aW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNv
ciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nv
bm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxp
bmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UK
ICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGph
bmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4g
c2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBk
YXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFs
X3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRp
b24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFz
a2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9t
X3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9u
X2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVy
X3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9z
dG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90
YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0
YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4g
c3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93
aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBp
biB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50
ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0
ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRf
c3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsn
dGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2Vs
Zi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmls
ZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0
aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9u
X2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFz
ayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAg
YXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3Nl
cnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xv
Z19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwg
aW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
dXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRl
X2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0
YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0
b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rh
c2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRh
J10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24g
d2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBp
biBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9y
ZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxh
eWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxm
aWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0
aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9i
dWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxm
LmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAg
ICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVy
biBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xv
bmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNl
bGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9m
ZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0
cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5
IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24u
Y3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vy
c29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBz
ZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
dXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5
cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1
LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQs
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBp
ZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJy
b3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3Qg
Y2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9y
ZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQK
ICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVp
bGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5i
cmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAg
YnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4g
Z2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25l
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxm
Ll9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0
Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMg
PSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIs
IGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1
cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNv
cgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2Vs
Zi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0
aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBl
LCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwg
aW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMg
dGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3Jl
X2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rh
c2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAg
IGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNz
ZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50
aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0
YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFz
awogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9m
cm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9y
ZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBz
ZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIs
IGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5p
bnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93
aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2
ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIg
aW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4g
dXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVy
bmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3Jt
YXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQu
dGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9m
cm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJz
aW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xh
eWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2Fu
ZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9y
ZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNr
ZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwg
aW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9n
X2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZp
ZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2Miwg
aW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmlu
dGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dp
bmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
MzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5m
b3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZl
bnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlv
bl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92
ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0
X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1
NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9y
bWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50
LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25f
ZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVy
c2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9s
YXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9h
bmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3Rv
cmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFz
a2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNr
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBh
c3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2Vy
dGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9n
X2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBp
biBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51
cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVf
YW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3Rh
dGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3Rv
cmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFz
awogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEn
XQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGlu
IHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3Jl
Y2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5
ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZp
bGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRo
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlk
ZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJv
cgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVf
bG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0
LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRh
dGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxf
c3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRf
c3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVf
dGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2Rh
dGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDks
IGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0
X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAg
bGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2Nh
bGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9w
YXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3
NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0
IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25F
cnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0
b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVu
dAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9i
dWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxm
LmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAg
ICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVy
biBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xv
bmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNl
bGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9m
ZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0
cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5
IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24u
Y3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vy
c29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBz
ZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
dXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5
cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1
LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQs
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBp
ZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJy
b3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4g
c2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFz
ayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVj
aXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tm
aWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5m
b3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRf
bGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwg
aW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0
ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9z
dGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51
cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVf
YW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3Rh
dGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3Rv
cmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFz
awogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEn
XQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGlu
IHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3Jl
Y2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5
ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZp
bGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRo
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlk
ZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJv
cgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVf
bG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0
LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRh
dGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxf
c3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRf
c3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVf
dGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2Rh
dGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDks
IGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0
X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAg
bGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2Nh
bGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9w
YXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2
MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0
IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25F
cnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBp
biBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1
cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJu
YWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcs
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1h
dGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50
YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zy
b21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNp
b25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5
ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5k
X3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3Jl
X3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tk
YXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBp
biBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9z
dG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90
YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0
YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAz
NjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2Vy
dCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9u
RXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFy
dGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3Jt
YXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGlu
IF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25f
b2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGlu
IHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQo
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVf
bG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0
LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2Fu
ZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9y
ZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNr
ZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFz
c2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0
aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9z
dGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5m
b3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEs
IGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNp
b25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
c3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3Rh
cnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9y
bWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBp
biBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9u
X29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYu
X2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNl
bGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1
ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5h
Z2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihz
ZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9h
bGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAg
ICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxl
ci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4
LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vy
c29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVf
Y29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5Iiwg
bGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNf
dmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlz
ZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpk
amFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0
b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0
ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1h
dGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4g
X2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9v
YmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9l
bnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxm
Lm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdl
ci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2Vs
Zi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAg
c2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIu
ZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwg
aW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNv
ciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nv
bm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxp
bmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UK
ICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGph
bmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4g
c2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBk
YXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFs
X3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5k
X3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3Jl
X3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tk
YXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBp
biBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2df
ZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNl
bGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAg
IHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRy
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9t
YW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0
cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRj
aF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxs
CiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21w
aWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUg
ODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAg
Y3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1
cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5
IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9l
eGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVy
YWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19l
dmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4g
c3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3Rv
cmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFz
awogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEn
XQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYx
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQg
aWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVy
cm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0
IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3Rv
cmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRl
ZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0
aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBf
Z2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29i
aiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVu
dGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9s
b2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xv
Z19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFz
c2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0
aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZp
ZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0
ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawog
ICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9t
X3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNp
cGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxm
Ll9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGlu
IHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRl
cm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4
OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1
cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJu
YWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9h
bmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3Rv
cmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFz
a2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
MDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5f
Z2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQog
ICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChs
b2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zv
cl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNz
ZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRp
b25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19l
dmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
NzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2Vy
dCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9u
RXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIg
aW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRf
dGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAg
cmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rh
c2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVf
aW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9n
ZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAw
MSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVw
ZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5h
bF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBm
b2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1
cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9y
bV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5w
eSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5n
ZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2Vs
Zi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhl
Y3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4g
ZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9
IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5l
Y3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUg
OTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVl
LCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAg
IHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdv
LmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9s
b2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xv
Z19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFz
c2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0
aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZp
ZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0
ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawog
ICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9t
X3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNp
cGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxm
Ll9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGlu
IHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRl
cm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4
OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9l
bnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxm
Lm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdl
ci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2Vs
Zi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAg
c2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIu
ZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwg
aW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNv
ciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nv
bm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxp
bmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UK
ICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGph
bmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4g
c2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBk
YXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFs
X3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRp
b24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFz
a2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9t
X3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9u
X2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVy
X3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9z
dG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90
YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0
YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4g
c3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3Rv
cmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFz
awogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEn
XQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYx
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQg
aWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVy
cm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0
IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3Rv
cmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRl
ZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0
aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBf
Z2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29i
aiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBz
ZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBm
b2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1
cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9y
bV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5w
eSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5n
ZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2Vs
Zi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhl
Y3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4g
ZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9
IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5l
Y3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUg
OTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVl
LCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAg
IHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdv
LmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
NjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2Vs
Zi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
dXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRl
X2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0
YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24g
PSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2Zp
bGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rh
c2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zv
cl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3Zl
cnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9y
ZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNr
CiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSdd
CkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdh
cyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3Rv
cmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVf
dGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawog
ICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpB
c3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRl
bnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9y
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNh
dXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVf
c3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90
YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9u
X2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0
X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9
IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3Vy
ZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3Jt
X3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0g
QnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5
IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdl
dF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxm
Ll9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVj
dXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBl
eGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0g
c2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVj
dGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5
OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUs
IHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAg
cmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28u
ZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2
MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxm
LmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2df
ZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNl
bGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAg
IHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRy
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9t
YW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0
cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRj
aF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxs
CiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21w
aWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUg
ODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAg
Y3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1
cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5
IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9l
eGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVy
YWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19l
dmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4g
c3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3Rv
cmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFz
awogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEn
XQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYx
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQg
aWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVy
cm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0
IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3Rv
cmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRl
ZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0
aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBf
Z2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29i
aiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRf
dGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlv
bl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dl
dF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmog
PSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1
cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9y
bV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5w
eSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5n
ZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2Vs
Zi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhl
Y3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4g
ZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9
IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5l
Y3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUg
OTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVl
LCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAg
IHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdv
LmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9z
dGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rh
c2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25f
ZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRf
cmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0g
c2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3Rh
cnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNr
CiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zy
b21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3Jl
Y2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNl
bGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9i
dWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dy
YXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5Iiwg
bGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9x
dWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9y
ZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRl
X3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVj
dXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2Vs
Zi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlv
bigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwg
aW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRy
YWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFp
c2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIu
dXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0
ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawog
ICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9t
X3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNp
cGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxm
Ll9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2Yg
dGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVk
X3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAg
IHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90
YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBl
X2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5f
Z2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEw
MDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1
cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJu
YWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9h
bmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3Rv
cmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFz
a2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNr
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBh
c3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2Vy
dGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlm
aWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIs
IGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5p
bnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBk
YXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2Fu
ZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRl
Wyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
ODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVu
dChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0
IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgNDI3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3Rv
cmVfYnVpbGRfcGFja2FnZV9pbmZvcm1hdGlvbihldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1MjIsIGlu
IHN0b3JlX2J1aWxkX3BhY2thZ2VfaW5mb3JtYXRpb24KICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDQyNywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2J1aWxkX3BhY2th
Z2VfaW5mb3JtYXRpb24oZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTIyLCBpbiBzdG9yZV9idWlsZF9w
YWNrYWdlX2luZm9ybWF0aW9uCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSA0MjcsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9idWlsZF9wYWNrYWdlX2luZm9ybWF0aW9u
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTUyMiwgaW4gc3RvcmVfYnVpbGRfcGFja2FnZV9pbmZvcm1h
dGlvbgogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgNDI3LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfYnVpbGRfcGFja2FnZV9pbmZvcm1hdGlvbihldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE1MjIsIGluIHN0b3JlX2J1aWxkX3BhY2thZ2VfaW5mb3JtYXRpb24KICAgIHNlbGYu
X2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNl
bGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1
ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5h
Z2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihz
ZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9h
bGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAg
ICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxl
ci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4
LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vy
c29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVf
Y29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5Iiwg
bGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNf
dmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlz
ZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpk
amFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDQyNywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0
b3JlX2J1aWxkX3BhY2thZ2VfaW5mb3JtYXRpb24oZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTIyLCBp
biBzdG9yZV9idWlsZF9wYWNrYWdlX2luZm9ybWF0aW9uCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSA0MjcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9idWlsZF9wYWNr
YWdlX2luZm9ybWF0aW9uKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTUyMiwgaW4gc3RvcmVfYnVpbGRf
cGFja2FnZV9pbmZvcm1hdGlvbgogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZv
bGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSA0MjcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9idWlsZF9wYWNrYWdl
X2luZm9ybWF0aW9uKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTUyMiwgaW4gc3RvcmVfYnVpbGRfcGFj
a2FnZV9pbmZvcm1hdGlvbgogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgNDI3LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfYnVpbGRfcGFja2FnZV9pbmZvcm1hdGlvbihl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE1MjIsIGluIHN0b3JlX2J1aWxkX3BhY2thZ2VfaW5mb3JtYXRp
b24KICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDQyNywgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX2J1aWxkX3BhY2thZ2VfaW5mb3JtYXRpb24oZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNTIyLCBpbiBzdG9yZV9idWlsZF9wYWNrYWdlX2luZm9ybWF0aW9uCiAgICBzZWxmLl9l
bnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxm
Lm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdl
ci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2Vs
Zi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAg
c2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIu
ZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwg
aW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNv
ciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nv
bm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxp
bmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UK
ICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGph
bmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3Qg
Y2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSA0MjcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9y
ZV9idWlsZF9wYWNrYWdlX2luZm9ybWF0aW9uKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTUyMiwgaW4g
c3RvcmVfYnVpbGRfcGFja2FnZV9pbmZvcm1hdGlvbgogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBm
b2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgNDI3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfYnVpbGRfcGFja2Fn
ZV9pbmZvcm1hdGlvbihldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1MjIsIGluIHN0b3JlX2J1aWxkX3Bh
Y2thZ2VfaW5mb3JtYXRpb24KICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDQyNywgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2J1aWxkX3BhY2thZ2VfaW5mb3JtYXRpb24o
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNTIyLCBpbiBzdG9yZV9idWlsZF9wYWNrYWdlX2luZm9ybWF0
aW9uCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24g
d2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSA0MjcsIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci5zdG9yZV9idWlsZF9wYWNrYWdlX2luZm9ybWF0aW9uKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTUyMiwgaW4gc3RvcmVfYnVpbGRfcGFja2FnZV9pbmZvcm1hdGlvbgogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0
IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgNDI3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3Rv
cmVfYnVpbGRfcGFja2FnZV9pbmZvcm1hdGlvbihldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1MjIsIGlu
IHN0b3JlX2J1aWxkX3BhY2thZ2VfaW5mb3JtYXRpb24KICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDQyNywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2J1aWxkX3BhY2th
Z2VfaW5mb3JtYXRpb24oZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTIyLCBpbiBzdG9yZV9idWlsZF9w
YWNrYWdlX2luZm9ybWF0aW9uCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSA0MjcsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9idWlsZF9wYWNrYWdlX2luZm9ybWF0aW9u
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTUyMiwgaW4gc3RvcmVfYnVpbGRfcGFja2FnZV9pbmZvcm1h
dGlvbgogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgNDI3LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfYnVpbGRfcGFja2FnZV9pbmZvcm1hdGlvbihldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE1MjIsIGluIHN0b3JlX2J1aWxkX3BhY2thZ2VfaW5mb3JtYXRpb24KICAgIHNlbGYu
X2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNl
bGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1
ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5h
Z2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihz
ZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9h
bGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAg
ICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxl
ci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4
LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vy
c29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVf
Y29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5Iiwg
bGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNf
dmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlz
ZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpk
amFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDQyNywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0
b3JlX2J1aWxkX3BhY2thZ2VfaW5mb3JtYXRpb24oZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTIyLCBp
biBzdG9yZV9idWlsZF9wYWNrYWdlX2luZm9ybWF0aW9uCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSA0MjcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9idWlsZF9wYWNr
YWdlX2luZm9ybWF0aW9uKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTUyMiwgaW4gc3RvcmVfYnVpbGRf
cGFja2FnZV9pbmZvcm1hdGlvbgogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgNDI3LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfYnVpbGRfcGFja2FnZV9pbmZvcm1hdGlv
bihldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1MjIsIGluIHN0b3JlX2J1aWxkX3BhY2thZ2VfaW5mb3Jt
YXRpb24KICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDQyNywgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX2J1aWxkX3BhY2thZ2VfaW5mb3JtYXRpb24oZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNTIyLCBpbiBzdG9yZV9idWlsZF9wYWNrYWdlX2luZm9ybWF0aW9uCiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSA0MjcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9idWlsZF9wYWNrYWdlX2luZm9ybWF0aW9uKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTUyMiwg
aW4gc3RvcmVfYnVpbGRfcGFja2FnZV9pbmZvcm1hdGlvbgogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9l
bnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxm
Lm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdl
ci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2Vs
Zi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAg
c2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIu
ZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwg
aW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNv
ciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nv
bm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxp
bmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UK
ICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGph
bmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3Qg
Y2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9y
ZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQK
ICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVp
bGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5i
cmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAg
YnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4g
Z2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25l
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxm
Ll9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0
Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMg
PSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIs
IGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1
cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNv
cgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2Vs
Zi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0
aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBl
LCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwg
aW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMg
dGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3Jl
X2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4
NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODks
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5z
dXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5v
cm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3Qg
PSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIu
cHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYu
Z2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNl
bGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4
ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGlu
IGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3Ig
PSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25u
ZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5l
IDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1
ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAg
ICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5n
by5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNh
dXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVf
bG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAg
ICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxk
CiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJi
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1
aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdl
dGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5f
ZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNo
X2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0g
Y29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBs
aW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJz
b3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IK
ICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYu
ZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGls
cy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwg
ZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGlu
IHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50
aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2
MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxm
LmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51
cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVf
YW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3Rh
dGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9
IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmls
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFz
a2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9y
X3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVy
c2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3Jl
X3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sK
ICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10K
QXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBz
dG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNp
cGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVy
X3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxl
cGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVu
dGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
NjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2Vs
Zi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBl
X2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxl
KGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3Jt
YXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5
ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4g
X2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVw
ZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9h
bmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0
ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9y
ZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNr
CiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSdd
CkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdh
cyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4g
c3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVj
aXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXll
cl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmls
ZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgK
ICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVp
bGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5i
cmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAg
YnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4g
Z2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25l
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxm
Ll9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0
Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMg
PSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIs
IGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1
cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNv
cgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2Vs
Zi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0
aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBl
LCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwg
aW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRl
bnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9y
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNl
bGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0
ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9z
dGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9z
dG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90
YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0
YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4g
c3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93
aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2
ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZl
bnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0
b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
ODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4g
dXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVy
bmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVf
YW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0
b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rh
c2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFz
ayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAg
YXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3Nl
cnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3Jl
X3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9p
bmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAz
MSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVy
c2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZp
ZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0
ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawog
ICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9t
X3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNp
cGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxm
Ll9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGlu
IHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRl
cm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRl
X2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9z
dG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0
YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxm
Ll9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxl
CiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRo
KGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25f
Zm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9l
bnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAg
ICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2Fy
Z3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0g
bGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9f
CiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1
LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAg
IHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21w
aWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25u
ZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIs
IGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJz
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNv
cgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRq
X2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBs
aW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNr
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBh
c3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2Vy
dGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlm
aWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFy
dGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sK
ICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJv
bV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVj
aXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2Vs
Zi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgNDI3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfYnVpbGRf
cGFja2FnZV9pbmZvcm1hdGlvbihldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1MjIsIGluIHN0b3JlX2J1
aWxkX3BhY2thZ2VfaW5mb3JtYXRpb24KICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDQy
NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2J1aWxkX3BhY2thZ2VfaW5mb3Jt
YXRpb24oZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTIyLCBpbiBzdG9yZV9idWlsZF9wYWNrYWdlX2lu
Zm9ybWF0aW9uCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSA0MjcsIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9idWlsZF9wYWNrYWdlX2luZm9ybWF0aW9uKGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTUyMiwgaW4gc3RvcmVfYnVpbGRfcGFja2FnZV9pbmZvcm1hdGlvbgogICAg
c2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAog
ICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWls
ZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRh
dHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2Zl
dGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9h
bGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNv
bXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGlu
ZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29y
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAg
ICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVu
c3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMu
cHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRq
X2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiBy
ZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgNDI3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfYnVpbGRfcGFja2FnZV9pbmZvcm1hdGlvbihldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1
MjIsIGluIHN0b3JlX2J1aWxkX3BhY2thZ2VfaW5mb3JtYXRpb24KICAgIHNlbGYuX2Vuc3VyZV9i
dWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dy
YXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5Iiwg
bGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9x
dWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9y
ZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRl
X3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVj
dXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2Vs
Zi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlv
bigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwg
aW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRy
YWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFp
c2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIu
dXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDQyNywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2J1aWxk
X3BhY2thZ2VfaW5mb3JtYXRpb24oZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTIyLCBpbiBzdG9yZV9i
dWlsZF9wYWNrYWdlX2luZm9ybWF0aW9uCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSA0
MjcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9idWlsZF9wYWNrYWdlX2luZm9y
bWF0aW9uKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTUyMiwgaW4gc3RvcmVfYnVpbGRfcGFja2FnZV9p
bmZvcm1hdGlvbgogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4
NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9h
bmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3Rv
cmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFz
a2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNr
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBh
c3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2Vy
dGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9n
X2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNz
ZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRp
b25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmll
ciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2
ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZl
bnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0
b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
ODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVu
dChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0
IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3Rv
cmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9y
ZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1
ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQo
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVf
bG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0
LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBm
b2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1
cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9y
bV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5w
eSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5n
ZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2Vs
Zi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhl
Y3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4g
ZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9
IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5l
Y3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUg
OTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVl
LCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAg
IHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdv
LmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9s
b2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xv
Z19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwg
aW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSA0MjcsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9idWlsZF9wYWNrYWdlX2luZm9ybWF0aW9u
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTUyMiwgaW4gc3RvcmVfYnVpbGRfcGFja2FnZV9pbmZvcm1h
dGlvbgogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgNDI3LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfYnVpbGRfcGFja2FnZV9pbmZvcm1hdGlvbihldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE1MjIsIGluIHN0b3JlX2J1aWxkX3BhY2thZ2VfaW5mb3JtYXRpb24KICAgIHNlbGYu
X2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNl
bGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1
ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5h
Z2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihz
ZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9h
bGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAg
ICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxl
ci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4
LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vy
c29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVf
Y29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5Iiwg
bGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNf
dmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlz
ZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpk
amFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDQyNywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0
b3JlX2J1aWxkX3BhY2thZ2VfaW5mb3JtYXRpb24oZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTIyLCBp
biBzdG9yZV9idWlsZF9wYWNrYWdlX2luZm9ybWF0aW9uCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSA0MjcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9idWlsZF9wYWNr
YWdlX2luZm9ybWF0aW9uKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTUyMiwgaW4gc3RvcmVfYnVpbGRf
cGFja2FnZV9pbmZvcm1hdGlvbgogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgNDI3LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfYnVpbGRfcGFja2FnZV9pbmZvcm1hdGlv
bihldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1MjIsIGluIHN0b3JlX2J1aWxkX3BhY2thZ2VfaW5mb3Jt
YXRpb24KICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDQyNywgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX2J1aWxkX3BhY2thZ2VfaW5mb3JtYXRpb24oZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNTIyLCBpbiBzdG9yZV9idWlsZF9wYWNrYWdlX2luZm9ybWF0aW9uCiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZl
bnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0
b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSA0
MjcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9idWlsZF9wYWNrYWdlX2luZm9y
bWF0aW9uKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTUyMiwgaW4gc3RvcmVfYnVpbGRfcGFja2FnZV9p
bmZvcm1hdGlvbgogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgNDI3LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfYnVpbGRfcGFja2FnZV9pbmZvcm1hdGlvbihldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE1MjIsIGluIHN0b3JlX2J1aWxkX3BhY2thZ2VfaW5mb3JtYXRpb24KICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDQyNywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX2J1aWxkX3BhY2thZ2VfaW5mb3JtYXRpb24oZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NTIyLCBpbiBzdG9yZV9idWlsZF9wYWNrYWdlX2luZm9ybWF0aW9uCiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSA0MjcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9idWls
ZF9wYWNrYWdlX2luZm9ybWF0aW9uKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTUyMiwgaW4gc3RvcmVf
YnVpbGRfcGFja2FnZV9pbmZvcm1hdGlvbgogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2Jq
ZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4g
bWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5h
bWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwg
aW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9
IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4
LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBj
dXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdf
Y3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwog
ICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRo
X3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dp
bmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
NDI3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfYnVpbGRfcGFja2FnZV9pbmZv
cm1hdGlvbihldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1MjIsIGluIHN0b3JlX2J1aWxkX3BhY2thZ2Vf
aW5mb3JtYXRpb24KICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDQyNywgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2J1aWxkX3BhY2thZ2VfaW5mb3JtYXRpb24oZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNTIyLCBpbiBzdG9yZV9idWlsZF9wYWNrYWdlX2luZm9ybWF0aW9uCiAg
ICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxk
CiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJi
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1
aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdl
dGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5f
ZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNo
X2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0g
Y29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBs
aW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJz
b3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IK
ICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYu
ZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGls
cy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwg
ZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGlu
IHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRo
ZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSA0MjcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci5zdG9yZV9idWlsZF9wYWNrYWdlX2luZm9ybWF0aW9uKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTUyMiwgaW4gc3RvcmVfYnVpbGRfcGFja2FnZV9pbmZvcm1hdGlvbgogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgNDI3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfYnVp
bGRfcGFja2FnZV9pbmZvcm1hdGlvbihldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1MjIsIGluIHN0b3Jl
X2J1aWxkX3BhY2thZ2VfaW5mb3JtYXRpb24KICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93
aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDQyNywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2J1aWxkX3BhY2thZ2VfaW5m
b3JtYXRpb24oZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTIyLCBpbiBzdG9yZV9idWlsZF9wYWNrYWdl
X2luZm9ybWF0aW9uCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSA0MjcsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9idWlsZF9wYWNrYWdlX2luZm9ybWF0aW9uKGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTUyMiwgaW4gc3RvcmVfYnVpbGRfcGFja2FnZV9pbmZvcm1hdGlvbgog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgNDI3LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfYnVpbGRfcGFja2FnZV9pbmZvcm1hdGlvbihldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE1MjIsIGluIHN0b3JlX2J1aWxkX3BhY2thZ2VfaW5mb3JtYXRpb24KICAgIHNlbGYuX2Vuc3Vy
ZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3Jt
X3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0g
QnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5
IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdl
dF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxm
Ll9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVj
dXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBl
eGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0g
c2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVj
dGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5
OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUs
IHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAg
cmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28u
ZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDQyNywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2J1
aWxkX3BhY2thZ2VfaW5mb3JtYXRpb24oZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTIyLCBpbiBzdG9y
ZV9idWlsZF9wYWNrYWdlX2luZm9ybWF0aW9uCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSA0MjcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9idWlsZF9wYWNrYWdlX2lu
Zm9ybWF0aW9uKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTUyMiwgaW4gc3RvcmVfYnVpbGRfcGFja2Fn
ZV9pbmZvcm1hdGlvbgogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
ODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVu
dChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0
IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3Rv
cmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9y
ZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAg
ICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFz
c2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVu
dGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
NjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2Vs
Zi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBl
X2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxl
KGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3Jt
YXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5
ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4g
X2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVw
ZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9h
bmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0
ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0g
c2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNr
ZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3Jf
cGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJz
aW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVf
dGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawog
ICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpB
c3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRl
bnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9y
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNl
bGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZv
bGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lw
ZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmls
ZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9y
bWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xh
eWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGlu
IF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIs
IGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5p
bnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93
aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2
ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZl
bnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0
b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3Jl
X3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sK
ICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10K
QXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlk
ZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJv
cgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRf
dGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlv
bl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dl
dF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmog
PSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1
cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9y
bV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5w
eSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5n
ZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2Vs
Zi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhl
Y3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4g
ZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9
IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5l
Y3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUg
OTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVl
LCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAg
IHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdv
LmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9s
b2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xv
Z19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFz
c2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0
aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2df
ZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3Nl
cnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlv
bkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
c3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2
ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3
NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0
IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25F
cnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBp
biBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICBy
ZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFz
a2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9p
bmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dl
dF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAx
LCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBk
YXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFs
X3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5k
X3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3Jl
X3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tk
YXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5
LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dl
dF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAg
IGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9j
YWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3Jf
cGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4g
c3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3Rv
cmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFz
awogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEn
XQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0
b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3Jl
X3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sK
ICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10K
QXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlk
ZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJv
cgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRf
dGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlv
bl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dl
dF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmog
PSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1
cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9y
bV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5w
eSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5n
ZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2Vs
Zi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhl
Y3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4g
ZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9
IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5l
Y3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUg
OTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVl
LCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAg
IHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdv
LmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9s
b2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xv
Z19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFz
c2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0
aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2df
ZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3Nl
cnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlv
bkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVy
IGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2Yg
dGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZl
bnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYu
X2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNl
bGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1
ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5h
Z2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihz
ZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9h
bGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAg
ICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxl
ci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4
LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vy
c29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVf
Y29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5Iiwg
bGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNf
dmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlz
ZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpk
amFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBp
biBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICBy
ZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFz
a2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9p
bmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dl
dF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAx
LCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBk
YXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFs
X3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5k
X3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3Jl
X3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tk
YXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5
LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dl
dF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAg
IGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9j
YWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3Jf
cGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
NzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2Vy
dCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9u
RXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIg
aW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRf
dGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAg
cmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rh
c2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVf
aW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9n
ZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAw
MSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQo
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBz
ZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRh
dGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxf
c3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRf
c3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVf
dGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2Rh
dGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3Nl
cnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlv
bkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVy
IGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2Yg
dGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZl
bnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYu
X2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNl
bGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1
ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5h
Z2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihz
ZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9h
bGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAg
ICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxl
ci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4
LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vy
c29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVf
Y29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5Iiwg
bGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNf
dmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlz
ZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpk
amFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0
b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVu
dAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9i
dWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxm
LmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAg
ICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVy
biBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xv
bmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNl
bGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9m
ZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0
cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5
IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24u
Y3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vy
c29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBz
ZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
dXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5
cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1
LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdh
cyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4g
c3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVj
aXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXll
cl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmls
ZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgK
ICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVp
bGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5i
cmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAg
YnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4g
Z2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25l
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxm
Ll9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0
Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMg
PSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIs
IGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1
cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNv
cgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2Vs
Zi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0
aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBl
LCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwg
aW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMg
dGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3Jl
X2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4
NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODks
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5z
dXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5v
cm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3Qg
PSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIu
cHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYu
Z2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNl
bGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4
ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGlu
IGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3Ig
PSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25u
ZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5l
IDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1
ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAg
ICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5n
by5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNl
bGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0
ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9z
dGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFy
dGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sK
ICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJv
bV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVj
aXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2Vs
Zi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBp
biB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50
ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0
ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRf
c3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsn
dGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2Vs
Zi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmls
ZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0
aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9u
X2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFz
ayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAg
YXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3Nl
cnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRp
ZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9n
X2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2df
ZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3Nl
cnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlv
bkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVy
IGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGlu
IHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRl
cm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1
NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9y
bWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50
LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25f
ZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVy
c2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9s
YXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODks
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5z
dXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5v
cm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3Qg
PSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIu
cHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYu
Z2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNl
bGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4
ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGlu
IGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3Ig
PSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25u
ZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5l
IDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1
ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAg
ICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5n
by5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNh
dXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVf
bG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAg
ICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxk
CiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJi
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1
aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdl
dGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5f
ZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNo
X2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0g
Y29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBs
aW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJz
b3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IK
ICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYu
ZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGls
cy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwg
ZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGlu
IHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRo
ZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9s
b2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9l
bnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAg
ICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2Fy
Z3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0g
bGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9f
CiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1
LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAg
IHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21w
aWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25u
ZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIs
IGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJz
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNv
cgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRq
X2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBs
aW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQs
IGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5k
X3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3Jl
X3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tk
YXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNz
ZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRp
b25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0
YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZv
cm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwg
aW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lv
bl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIg
aW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVu
dChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0
IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3Rv
cmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlk
ZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJv
cgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBz
ZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBm
b2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNr
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNp
cGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2Zp
bGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZv
cm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9s
YXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBp
biBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
dXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRl
X2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0
YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVw
ZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9h
bmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0
ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9y
ZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNr
CiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSdd
CkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEs
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBp
ZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJy
b3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3Qg
Y2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9y
ZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVk
X3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRp
b25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9n
ZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2Jq
ID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5z
dXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5v
cm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3Qg
PSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIu
cHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYu
Z2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNl
bGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4
ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGlu
IGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3Ig
PSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25u
ZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5l
IDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1
ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAg
ICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5n
by5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNh
dXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVf
bG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAg
ICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxk
CiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJi
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1
aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdl
dGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5f
ZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNo
X2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0g
Y29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBs
aW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJz
b3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IK
ICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYu
ZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGls
cy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwg
ZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGlu
IHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRo
ZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9s
b2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9l
bnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAg
ICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2Fy
Z3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0g
bGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9f
CiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1
LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAg
IHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21w
aWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25u
ZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIs
IGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJz
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNv
cgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRq
X2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBs
aW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQs
IGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5k
X3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3Jl
X3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tk
YXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBp
biBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2df
ZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNl
bGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAg
IHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRy
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9t
YW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0
cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRj
aF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxs
CiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21w
aWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUg
ODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAg
Y3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1
cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5
IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9l
eGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVy
YWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19l
dmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4g
c3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93
aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBp
biB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50
ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
ODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4g
dXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVy
bmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3Jt
YXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQu
dGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9m
cm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJz
aW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xh
eWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBm
b2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1
cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9y
bV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5w
eSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5n
ZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2Vs
Zi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhl
Y3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4g
ZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9
IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5l
Y3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUg
OTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVl
LCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAg
IHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdv
LmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9s
b2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRp
ZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9n
X2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2df
ZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGlu
IHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9i
dWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dy
YXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5Iiwg
bGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9x
dWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9y
ZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRl
X3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVj
dXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2Vs
Zi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlv
bigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwg
aW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRy
YWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFp
c2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIu
dXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19l
dmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
c3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2
ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24g
d2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBz
dG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2Jq
ZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4g
bWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5h
bWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwg
aW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9
IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4
LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBj
dXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdf
Y3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwog
ICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRo
X3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dp
bmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGlu
IHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRl
cm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRl
X2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9z
dG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0
YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxm
Ll9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxl
CiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRo
KGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25f
Zm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9l
bnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAg
ICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2Fy
Z3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0g
bGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9f
CiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1
LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAg
IHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21w
aWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25u
ZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIs
IGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJz
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNv
cgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRq
X2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBs
aW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQs
IGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZv
bGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3Vy
ZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3Jt
X3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0g
QnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5
IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdl
dF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxm
Ll9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVj
dXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBl
eGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0g
c2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVj
dGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5
OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUs
IHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAg
cmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28u
ZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xv
Z19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAg
c2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAog
ICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWls
ZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRh
dHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2Zl
dGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9h
bGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNv
bXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGlu
ZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29y
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAg
ICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVu
c3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMu
cHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRq
X2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiBy
ZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlm
aWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2df
ZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNl
bGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAg
IHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRy
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9t
YW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0
cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRj
aF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxs
CiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21w
aWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUg
ODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAg
Y3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1
cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5
IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9l
eGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVy
YWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmll
ciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBp
biB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50
ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAz
NTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZv
cm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVu
dC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9u
X2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3Zl
cnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRf
bGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQo
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVf
bG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0
LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBm
b2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1
cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9y
bV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5w
eSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5n
ZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2Vs
Zi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhl
Y3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4g
ZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9
IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5l
Y3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUg
OTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVl
LCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAg
IHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdv
LmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
NjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2Vs
Zi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYy
LCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYu
aW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVw
ZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9h
bmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0
ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0g
c2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNr
ZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3Jf
cGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJz
aW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4
OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1
cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJu
YWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9h
bmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3Rv
cmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFz
a2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
MDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5f
Z2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQog
ICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChs
b2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zv
cl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBp
biBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2df
ZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNl
bGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAg
IHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRy
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9t
YW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0
cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRj
aF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxs
CiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21w
aWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUg
ODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAg
Y3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1
cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5
IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9l
eGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVy
YWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19l
dmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4g
c3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBk
YXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2Fu
ZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRl
Wyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3Jl
X3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sK
ICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10K
QXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9y
ZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAg
ICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFz
c2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVf
bG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0
LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2Fu
ZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9y
ZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNr
ZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIw
OSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9n
ZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAg
ICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxv
Y2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9y
X3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGlu
IHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVw
ZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9h
bmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0
ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9y
ZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNr
CiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSdd
CkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdh
cyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4g
c3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVj
aXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXll
cl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmls
ZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgK
ICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVp
bGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5i
cmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAg
YnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4g
Z2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25l
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxm
Ll9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0
Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMg
PSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIs
IGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1
cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNv
cgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2Vs
Zi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0
aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBl
LCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwg
aW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMg
dGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3Jl
X2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4
NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9h
bmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3Rv
cmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFz
a2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQs
IGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZv
bGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3Vy
ZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3Jt
X3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0g
QnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5
IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdl
dF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxm
Ll9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVj
dXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBl
eGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0g
c2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVj
dGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5
OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUs
IHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAg
cmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28u
ZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xv
Z19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAg
c2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAog
ICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWls
ZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRh
dHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2Zl
dGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9h
bGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNv
bXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGlu
ZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29y
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAg
ICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVu
c3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMu
cHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRq
X2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiBy
ZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9n
X2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBp
biBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2df
ZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNl
bGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAg
IHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRy
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9t
YW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0
cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRj
aF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxs
CiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21w
aWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUg
ODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAg
Y3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1
cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5
IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9l
eGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVy
YWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19l
dmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
NzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2Vy
dCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9u
RXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZl
bnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0
b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
ODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVu
dChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0
IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3Rv
cmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9y
ZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1
ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQo
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVf
bG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0
LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBm
b2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1
cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9y
bV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5w
eSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5n
ZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2Vs
Zi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhl
Y3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4g
ZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9
IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5l
Y3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUg
OTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVl
LCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAg
IHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdv
LmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9s
b2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xv
Z19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFz
c2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0
aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2df
ZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGlu
IHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVw
ZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9h
bmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0
ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0g
c2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNr
ZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3Jf
cGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJz
aW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVf
dGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawog
ICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpB
c3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMg
dGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3Jl
X2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4
NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODks
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFz
ayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVj
aXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tm
aWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5m
b3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRf
bGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwg
aW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0
ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9z
dGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9u
ID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tm
aWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90
YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9m
b3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92
ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3Rv
cmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFz
awogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEn
XQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGlu
IHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3Jl
Y2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5
ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZp
bGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRo
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlk
ZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJv
cgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRf
dGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlv
bl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dl
dF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmog
PSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1
cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9y
bV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5w
eSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5n
ZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2Vs
Zi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhl
Y3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4g
ZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9
IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5l
Y3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUg
OTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVl
LCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAg
IHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdv
LmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
NjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2Vs
Zi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBl
X2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxl
KGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3Jt
YXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5
ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4g
X2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVw
ZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9h
bmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0
ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2Jq
ZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4g
bWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5h
bWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwg
aW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9
IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4
LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBj
dXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdf
Y3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwog
ICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRo
X3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dp
bmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
MzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5m
b3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZl
bnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlv
bl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92
ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0
X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRl
X2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9z
dG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0
YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxm
Ll9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxl
CiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRo
KGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25f
Zm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9l
bnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAg
ICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2Fy
Z3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0g
bGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9f
CiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1
LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAg
IHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21w
aWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25u
ZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIs
IGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJz
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNv
cgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRq
X2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBs
aW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNr
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBh
c3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2Vy
dGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9n
X2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBp
biBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51
cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVf
YW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3Rh
dGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3Rv
cmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFz
awogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEn
XQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0
b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
ODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVu
dChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0
IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3Rv
cmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9y
ZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1
ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVf
YW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0
b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rh
c2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFz
ayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAg
YXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3Nl
cnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRp
ZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYy
LCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYu
aW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9p
bmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShl
dmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0
aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVy
X3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9n
ZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2Jq
ZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4g
bWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5h
bWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwg
aW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9
IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4
LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBj
dXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdf
Y3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwog
ICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRo
X3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRh
dGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5k
X3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVb
J3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4
OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1
cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJu
YWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9h
bmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3Rv
cmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFz
a2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEy
MDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5f
Z2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQog
ICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChs
b2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zv
cl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNz
ZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRp
b25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0
YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZv
cm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwg
aW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lv
bl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIg
aW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVu
dChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0
IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3Rv
cmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlk
ZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJv
cgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBz
ZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBm
b2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNr
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNp
cGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2Zp
bGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZv
cm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9s
YXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBp
biBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
dXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRl
X2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0
YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0
b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rh
c2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRh
J10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2
MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0
IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25F
cnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0
b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0
ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1h
dGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4g
X2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9v
YmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9l
bnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxm
Lm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdl
ci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2Vs
Zi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAg
c2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIu
ZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwg
aW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNv
ciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nv
bm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxp
bmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UK
ICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGph
bmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4g
c2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5z
dXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5v
cm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3Qg
PSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIu
cHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYu
Z2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNl
bGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4
ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGlu
IGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3Ig
PSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25u
ZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5l
IDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1
ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAg
ICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5n
by5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNh
dXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVf
bG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAg
ICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxk
CiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJi
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1
aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdl
dGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5f
ZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNo
X2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0g
Y29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBs
aW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJz
b3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IK
ICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYu
ZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGls
cy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwg
ZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGlu
IHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRo
ZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9s
b2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9l
bnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAg
ICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2Fy
Z3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0g
bGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9f
CiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1
LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAg
IHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21w
aWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25u
ZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIs
IGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJz
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNv
cgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRq
X2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBs
aW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNr
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBh
c3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2Vy
dGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlm
aWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFy
dGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sK
ICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJv
bV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVj
aXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2Vs
Zi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBp
biB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50
ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0
ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRf
c3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsn
dGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAg
ICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFz
c2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3Rv
cmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBl
X2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92
ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBh
dGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3Jl
X3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9p
bmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAz
MSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVy
c2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZp
ZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2Miwg
aW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmlu
dGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRh
dGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5k
X3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVb
J3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVf
dGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawog
ICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpB
c3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRl
bnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9y
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
MjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNl
bGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZv
bGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2so
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lw
ZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmls
ZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9y
bWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xh
eWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGlu
IF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVf
aW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUo
ZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1h
dGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXll
cl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBf
Z2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBk
YXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2Fu
ZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRl
Wyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3Jl
X3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sK
ICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10K
QXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9y
ZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90
YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAg
ICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFz
c2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNjEsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVu
dGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9z
dGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rh
c2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25f
ZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRf
cmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0g
c2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYy
LCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYu
aW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9i
dWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dy
YXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5Iiwg
bGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9x
dWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9y
ZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRl
X3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVj
dXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2Vs
Zi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlv
bigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwg
aW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRy
YWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFp
c2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIu
dXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19l
dmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgNDI3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
c3RvcmVfYnVpbGRfcGFja2FnZV9pbmZvcm1hdGlvbihldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1MjIs
IGluIHN0b3JlX2J1aWxkX3BhY2thZ2VfaW5mb3JtYXRpb24KICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDQyNywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2J1aWxkX3Bh
Y2thZ2VfaW5mb3JtYXRpb24oZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTIyLCBpbiBzdG9yZV9idWls
ZF9wYWNrYWdlX2luZm9ybWF0aW9uCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSA0Mjcs
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9idWlsZF9wYWNrYWdlX2luZm9ybWF0
aW9uKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTUyMiwgaW4gc3RvcmVfYnVpbGRfcGFja2FnZV9pbmZv
cm1hdGlvbgogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgNDI3LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfYnVpbGRfcGFja2FnZV9pbmZvcm1hdGlvbihldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE1MjIsIGluIHN0b3JlX2J1aWxkX3BhY2thZ2VfaW5mb3JtYXRpb24KICAgIHNl
bGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAg
IHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRy
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9t
YW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0
cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRj
aF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxs
CiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21w
aWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUg
ODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAg
Y3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1
cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5
IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9l
eGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVy
YWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDQyNywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX2J1aWxkX3BhY2thZ2VfaW5mb3JtYXRpb24oZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTIy
LCBpbiBzdG9yZV9idWlsZF9wYWNrYWdlX2luZm9ybWF0aW9uCiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2Yg
dGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSA0MjcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9idWlsZF9w
YWNrYWdlX2luZm9ybWF0aW9uKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTUyMiwgaW4gc3RvcmVfYnVp
bGRfcGFja2FnZV9pbmZvcm1hdGlvbgogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgNDI3
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfYnVpbGRfcGFja2FnZV9pbmZvcm1h
dGlvbihldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1MjIsIGluIHN0b3JlX2J1aWxkX3BhY2thZ2VfaW5m
b3JtYXRpb24KICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9l
bnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAg
ICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2Fy
Z3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0g
bGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9f
CiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1
LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAg
IHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21w
aWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25u
ZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIs
IGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJz
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNv
cgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRq
X2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBs
aW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDQyNywgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX2J1aWxkX3BhY2thZ2VfaW5mb3JtYXRpb24oZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNTIyLCBpbiBzdG9yZV9idWlsZF9wYWNrYWdlX2luZm9ybWF0aW9uCiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSA0MjcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9idWlsZF9wYWNrYWdlX2luZm9ybWF0aW9uKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTUy
MiwgaW4gc3RvcmVfYnVpbGRfcGFja2FnZV9pbmZvcm1hdGlvbgogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgNDI3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfYnVpbGRf
cGFja2FnZV9pbmZvcm1hdGlvbihldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1MjIsIGluIHN0b3JlX2J1
aWxkX3BhY2thZ2VfaW5mb3JtYXRpb24KICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDQy
NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2J1aWxkX3BhY2thZ2VfaW5mb3Jt
YXRpb24oZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTIyLCBpbiBzdG9yZV9idWlsZF9wYWNrYWdlX2lu
Zm9ybWF0aW9uCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSA0MjcsIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9idWlsZF9wYWNrYWdlX2luZm9ybWF0aW9uKGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTUyMiwgaW4gc3RvcmVfYnVpbGRfcGFja2FnZV9pbmZvcm1hdGlvbgogICAg
c2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAog
ICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWls
ZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRh
dHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2Zl
dGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9h
bGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNv
bXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGlu
ZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29y
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAg
ICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVu
c3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMu
cHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRq
X2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiBy
ZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgNDI3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfYnVpbGRfcGFja2FnZV9pbmZvcm1hdGlvbihldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1
MjIsIGluIHN0b3JlX2J1aWxkX3BhY2thZ2VfaW5mb3JtYXRpb24KICAgIHNlbGYuX2Vuc3VyZV9i
dWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dy
YXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5Iiwg
bGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9x
dWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9y
ZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRl
X3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVj
dXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2Vs
Zi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlv
bigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwg
aW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRy
YWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFp
c2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIu
dXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDQyNywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2J1aWxk
X3BhY2thZ2VfaW5mb3JtYXRpb24oZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTIyLCBpbiBzdG9yZV9i
dWlsZF9wYWNrYWdlX2luZm9ybWF0aW9uCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSA0
MjcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9idWlsZF9wYWNrYWdlX2luZm9y
bWF0aW9uKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTUyMiwgaW4gc3RvcmVfYnVpbGRfcGFja2FnZV9p
bmZvcm1hdGlvbgogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgNDI3LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfYnVpbGRfcGFja2FnZV9pbmZvcm1hdGlvbihldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE1MjIsIGluIHN0b3JlX2J1aWxkX3BhY2thZ2VfaW5mb3JtYXRpb24KICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDQyNywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX2J1aWxkX3BhY2thZ2VfaW5mb3JtYXRpb24oZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NTIyLCBpbiBzdG9yZV9idWlsZF9wYWNrYWdlX2luZm9ybWF0aW9uCiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSA0MjcsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9idWls
ZF9wYWNrYWdlX2luZm9ybWF0aW9uKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTUyMiwgaW4gc3RvcmVf
YnVpbGRfcGFja2FnZV9pbmZvcm1hdGlvbgogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2Jq
ZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4g
bWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5h
bWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwg
aW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9
IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4
LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBj
dXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdf
Y3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwog
ICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRo
X3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dp
bmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
NDI3LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfYnVpbGRfcGFja2FnZV9pbmZv
cm1hdGlvbihldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1MjIsIGluIHN0b3JlX2J1aWxkX3BhY2thZ2Vf
aW5mb3JtYXRpb24KICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1
ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVw
ZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5h
bF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2Fu
ZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9y
ZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNr
ZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIw
OSwgaW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9n
ZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAg
ICBsYXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxv
Y2FsZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9y
X3BhdGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3Nl
cnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlv
bkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVy
IGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGlu
IHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRl
cm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1
NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9y
bWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50
LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25f
ZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVy
c2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9s
YXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9h
bmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3Rv
cmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFz
a2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQs
IGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0
ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9z
dGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9z
dG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90
YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0
YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwg
aW4gc3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRf
cmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBs
YXllcl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2Fs
ZmlsZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3Bh
dGgKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGlu
IHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3Jl
Y2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5
ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZp
bGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRo
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlk
ZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJv
cgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBz
ZWxmLmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBm
b2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1
cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9y
bV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5w
eSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5n
ZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2Vs
Zi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhl
Y3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4g
ZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9
IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5l
Y3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUg
OTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVl
LCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAg
IHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdv
LmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9s
b2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xv
Z19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwg
aW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9n
X2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2df
ZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGlu
IHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9i
dWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dy
YXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5Iiwg
bGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9x
dWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9y
ZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRl
X3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVj
dXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2Vs
Zi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlv
bigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwg
aW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRy
YWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFp
c2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIu
dXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19l
dmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
c3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2
ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24g
d2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBz
dG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2Jq
ZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4g
bWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5h
bWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwg
aW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9
IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4
LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBj
dXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdf
Y3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwog
ICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRo
X3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dp
bmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2Yg
dGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZl
bnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYu
X2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNl
bGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1
ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5h
Z2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihz
ZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9h
bGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAg
ICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxl
ci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4
LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vy
c29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVf
Y29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5Iiwg
bGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNf
dmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlz
ZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpk
amFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0
b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVu
dAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9i
dWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxm
LmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAg
ICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVy
biBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xv
bmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNl
bGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9m
ZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0
cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5
IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24u
Y3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vy
c29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBz
ZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
dXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5
cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1
LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdh
cyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3Rv
cmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4
OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9l
bnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxm
Lm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdl
ci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2Vs
Zi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAg
c2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIu
ZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwg
aW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNv
ciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nv
bm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxp
bmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UK
ICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGph
bmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3Qg
Y2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9y
ZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQK
ICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVp
bGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5i
cmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAg
YnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4g
Z2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25l
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxm
Ll9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0
Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMg
PSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIs
IGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1
cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNv
cgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2Vs
Zi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0
aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBl
LCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwg
aW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMg
dGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3Jl
X2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4
NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODks
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5z
dXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5v
cm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3Qg
PSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIu
cHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYu
Z2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNl
bGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4
ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGlu
IGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3Ig
PSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25u
ZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5l
IDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1
ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAg
ICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5n
by5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNh
dXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVf
bG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAg
ICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxk
CiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJi
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1
aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdl
dGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5f
ZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNo
X2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0g
Y29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBs
aW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJz
b3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IK
ICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYu
ZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGls
cy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwg
ZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGlu
IHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRo
ZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9s
b2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9l
bnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAg
ICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2Fy
Z3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0g
bGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9f
CiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1
LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAg
IHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21w
aWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25u
ZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIs
IGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJz
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNv
cgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRq
X2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBs
aW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQs
IGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZv
bGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3Vy
ZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3Jt
X3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0g
QnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5
IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdl
dF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxm
Ll9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVj
dXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBl
eGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0g
c2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVj
dGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5
OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUs
IHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAg
cmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28u
ZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xv
Z19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAg
c2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAog
ICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWls
ZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRh
dHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2Zl
dGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9h
bGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNv
bXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGlu
ZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29y
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAg
ICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVu
c3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMu
cHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRq
X2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiBy
ZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9n
X2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBp
biBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2df
ZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNl
bGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAg
IHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRy
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9t
YW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0
cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRj
aF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxs
CiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21w
aWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUg
ODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAg
Y3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1
cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5
IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9l
eGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVy
YWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19l
dmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4g
c3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93
aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2
ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZl
bnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0
b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
ODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVu
dChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0
IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3Rv
cmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9y
ZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1
ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQo
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVf
bG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0
LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBm
b2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1
cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9y
bV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5w
eSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5n
ZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2Vs
Zi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhl
Y3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4g
ZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9
IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5l
Y3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUg
OTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVl
LCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAg
IHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdv
LmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9s
b2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xv
Z19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwg
aW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9n
X2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2df
ZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGlu
IHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9i
dWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dy
YXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5Iiwg
bGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9x
dWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9y
ZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRl
X3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVj
dXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2Vs
Zi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlv
bigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwg
aW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRy
YWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFp
c2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIu
dXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19l
dmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
c3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2
ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24g
d2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBz
dG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2Jq
ZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4g
bWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5h
bWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwg
aW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9
IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4
LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBj
dXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdf
Y3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwog
ICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRo
X3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dp
bmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2Yg
dGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZl
bnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYu
X2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNl
bGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1
ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5h
Z2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihz
ZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9h
bGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAg
ICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxl
ci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4
LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vy
c29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVf
Y29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5Iiwg
bGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNf
dmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlz
ZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpk
amFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0
b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVu
dAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9i
dWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxm
LmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAg
ICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVy
biBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xv
bmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNl
bGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9m
ZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0
cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5
IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24u
Y3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vy
c29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBz
ZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
dXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5
cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1
LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdh
cyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3Rv
cmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4
OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9l
bnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxm
Lm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdl
ci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2Vs
Zi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAg
c2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIu
ZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwg
aW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNv
ciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nv
bm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxp
bmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UK
ICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGph
bmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3Qg
Y2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
dG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9y
ZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQK
ICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVp
bGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5i
cmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAg
YnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4g
Z2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25l
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxm
Ll9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0
Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMg
PSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIs
IGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1
cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNv
cgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2Vs
Zi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0
aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBl
LCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwg
aW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMg
dGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3Jl
X2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4g
X2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QK
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3
YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0g
PSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVu
X18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5
NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVy
YXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgog
ICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2Nv
bXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNv
bm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2
MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1
cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vy
c29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2Uo
ZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIs
IGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8g
c2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhj
ZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAg
ICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4
NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3Rz
LmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5h
Z2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSko
KmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBn
ZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0
NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlz
dChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGlu
IGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNv
ciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJz
b3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBz
aXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRp
bHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJh
Y2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZh
aWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpz
cWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRo
ZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBl
eGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODks
IGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIu
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBp
biBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAx
MjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNl
dCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRf
Y2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3Nx
bAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtl
X2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19l
eGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFj
aykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFs
dWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUg
Zm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHki
LCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChl
dmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5z
dXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5v
cm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3Qg
PSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIu
cHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYu
Z2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNl
bGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4
ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGlu
IGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3Ig
PSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25u
ZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5l
IDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1
ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAg
ICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5n
by5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0
byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNh
dXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3Rv
YXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVf
bG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAg
ICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxk
CiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJi
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1
aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdl
dGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5f
ZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNo
X2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0g
Y29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBs
aW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJz
b3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IK
ICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYu
ZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGls
cy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwg
ZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGlu
IHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRo
ZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hl
bHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9s
b2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9l
bnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29i
amVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAg
ICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2Fy
Z3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0g
bGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9f
CiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1
LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAg
IHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21w
aWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25u
ZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIs
IGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJz
b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNv
cgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRq
X2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBs
aW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNh
dmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQs
IGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVh
dGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5n
ZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdl
cl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCph
cmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0
CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQs
IGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qo
c2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBp
dGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3Ig
PSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29y
KHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1
LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4
LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxz
L3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNl
YmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZv
bGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3Vy
ZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3Jt
X3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0g
QnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5
IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdl
dF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxm
Ll9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVj
dXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBl
eGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0g
c2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVj
dGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5
OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUs
IHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAg
cmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28u
ZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xv
Z19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAg
c2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAog
ICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWls
ZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRh
dHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2Zl
dGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9h
bGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNv
bXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGlu
ZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29y
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAg
ICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVu
c3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMu
cHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRq
X2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiBy
ZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj
YWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2Vs
Zi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRl
My9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERh
dGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUg
ZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9n
X2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5z
dXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmpl
Y3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdz
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxl
bihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwog
ICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwg
aW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICBy
ZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGls
ZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVj
dGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBp
biBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29y
KCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IK
ICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9l
eGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGlu
ZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZl
IHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAg
ICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRp
b24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1
aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBp
biBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5
MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRl
X2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0
KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJf
bWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJn
cywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAog
ICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBp
biBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNl
bGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRl
cmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0g
c2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihz
ZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwg
aW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5y
ZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9z
aXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJh
Y2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVk
IHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAg
IHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nv
bm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0
ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
b2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywg
aW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCks
IG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMy
OCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNo
ZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAg
ICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVi
dWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRf
XwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53
aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVy
YXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxp
bmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVf
YnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93
cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIs
IGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRf
cXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5f
cmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0
ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhl
Y3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNl
bGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rp
b24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgs
IGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0
cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJh
aXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRi
LnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0
aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29u
bmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBs
aW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVj
dCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ug
b2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3Rl
cnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2df
ZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNl
bGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAg
IHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRy
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9t
YW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0
cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRj
aF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxs
CiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21w
aWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUg
ODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAg
Y3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1
cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5
IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9l
eGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVy
YWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNl
cHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9S
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5z
dXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYu
Z2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMv
YmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRh
YmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVy
LnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19l
dmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3Vy
ZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChz
ZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0
CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4o
Y2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAg
IHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGlu
IF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVz
dWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVy
LnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rp
b24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4g
Y3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigp
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAg
ICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhj
X3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUg
Njg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0
b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9u
IHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4g
c3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEz
LCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9i
dWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChw
az1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21l
dGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3Ms
ICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAg
IG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4g
X19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxm
Lml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJh
dG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9z
cWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNl
bGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2Vs
Zi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGlu
IF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVy
YWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4
LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNr
KHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93
aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2
ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZl
bnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0
b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
ODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVu
dChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVf
Y29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRf
bmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNl
LnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNl
LmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0
IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3Rv
cmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50
CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1
aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYu
YnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAg
IGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9u
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2Vs
Zi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2Zl
dGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRz
ID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHki
LCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5j
dXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJz
b3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNl
bGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91
dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlw
ZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUs
IGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0
ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2Fz
IHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5m
b2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9y
ZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGlu
IF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJy
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9k
CiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKipr
d2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVt
ID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xl
bl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
OTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRl
cmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IK
ICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9j
b21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5j
b25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
NjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9j
dXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1
cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNl
KGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHki
LCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1
ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhl
IGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5
IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQo
ZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vu
c3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYu
b3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2Vy
LnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBz
ZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5l
eGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBp
biBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29y
ID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29u
bmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGlu
ZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFs
dWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQog
ICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFu
Z28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24g
dG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3Jl
X2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAog
ICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWls
ZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJy
YmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBi
dWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYu
X2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRj
aF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9
IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5Iiwg
bGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vy
c29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29y
CiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxm
LmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRp
bHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUs
IGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBp
biByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVy
IGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
RVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0
aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9o
ZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVf
bG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBf
ZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9v
YmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAog
ICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dh
cmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9
IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5f
XwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2
NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJh
dG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAg
ICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29t
cGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29u
bmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYy
LCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vy
c29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJz
b3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShk
al9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5Iiwg
bGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBz
YXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0
LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMu
Z2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFn
ZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgq
YXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdl
dAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0
LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0
KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4g
aXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29y
ID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNv
cihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
NSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNp
eC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGls
cy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFj
ZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5n
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGlu
IGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVl
c3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEy
NywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0
KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9j
YWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3Fs
CiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2Vf
ZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4
aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNr
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1
ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJ
VElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJh
c2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwg
aW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24o
Y29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQs
IGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25u
X3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBm
b2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIs
IGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2
ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1
cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9y
bV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5w
eSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5n
ZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2Vs
Zi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhl
Y3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4g
ZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9
IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5l
Y3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUg
OTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVl
LCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAg
IHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdv
LmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
CkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRv
IHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdf
Y29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHki
LCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29u
bmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1
c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9h
c3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9s
b2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAg
IHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQK
ICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJl
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVp
bGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0
YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9m
ZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hf
YWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBj
b21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxp
bmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNv
cigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgog
ICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5l
bnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxz
LnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBk
al9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4g
cmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBl
eGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVS
Uk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhl
IGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xv
Z19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vu
c3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkv
YnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2Jq
ZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAg
IHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJn
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBs
ZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18K
ICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUs
IGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAg
cmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBp
bGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5l
Y3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2Miwg
aW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNv
cigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29y
CiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpf
ZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxp
bmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwg
aW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGlu
IGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNv
bm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBp
biBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9w
YXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9s
bG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBs
aW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJl
X2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1f
d3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBC
dWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHki
LCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0
X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYu
X3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1
dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4
ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBz
ZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0
aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4
LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwg
dHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICBy
YWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5k
Yi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpF
UlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0
aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nv
bm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5Iiwg
bGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5l
Y3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNl
IG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9n
X2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBz
ZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAg
ICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxk
cmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
bWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0
dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0
Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2Fs
bAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29t
cGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5l
IDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3Io
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAg
IGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5z
dXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5w
eSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpf
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJl
cmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhj
ZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJP
UjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVu
c3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxm
LmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUz
L2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0
YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBk
aXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBl
ci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2df
ZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1
cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qo
c2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVj
dAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3Mp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVu
KGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAg
ICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBp
biBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJl
c3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxl
ci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0
aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGlu
IGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3Io
KSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgog
ICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4
Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5l
IDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUg
dG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVj
dGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAg
IGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlv
biB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVp
bGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGlu
IHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAg
c2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29u
bmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRl
My5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJv
dmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBt
YWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5v
YmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBp
biBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwg
bmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4
LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hl
ID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAy
MzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAg
IGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1
Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9f
CiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndp
dGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJh
dGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNB
TCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJh
c2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxm
LmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBj
b25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25u
X3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4g
Z2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFy
YW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxv
d2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGlu
ZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9i
dWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dy
YXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5Iiwg
bGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9x
dWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9y
ZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRl
X3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVj
dXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2Vs
Zi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlv
bigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwg
aW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRy
YWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFp
c2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIu
dXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJS
T1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhl
IGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rp
b24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25u
ZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxp
bmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0
KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBv
ZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVy
dWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19l
dmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9i
dWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2Vs
Zi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAg
c2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJl
cXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21h
bmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNo
X2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwK
ICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBp
bGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4
MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBj
dXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3Vy
ZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHki
LCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4
Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJh
aXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2Vw
dGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
c3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2
ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJl
X2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNl
bGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QK
ICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihj
bG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAg
c2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4g
X2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1
bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIu
cHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlv
bi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBj
dXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAg
IHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNf
dHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2
ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24g
d2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBz
dG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMs
IGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBr
PWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0
aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywg
Kiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAg
bnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBf
X2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYu
aXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0
b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3Nx
bC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2Vs
Zi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxm
Ll9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4g
X2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJh
aXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgu
cHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2so
dGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9j
b25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9u
ZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2Uu
cHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2Uu
Y29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRv
IHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNl
YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNl
bGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5l
Y3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMu
T3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3Zl
IGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv
bjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFp
bgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIv
Yml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9v
cl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2Jq
ZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4g
bWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5h
bWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwg
aW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9
IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4
LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBj
dXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdf
Y3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwog
ICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRo
X3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwg
LSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29u
bmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9w
YXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdl
dF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFt
cykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dp
bmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUg
Mjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVp
bGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFw
cGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2
MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxp
bmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVl
cnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVz
dWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5
IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9z
cWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0
ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYu
bWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24o
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGlu
IF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNl
IHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5j
b25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlv
bgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0
aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9S
OiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBk
YXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVj
dGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5l
IDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgq
KmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2Yg
dGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZl
bnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYu
X2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNl
bGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1
ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5h
Z2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihz
ZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9h
bGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAg
ICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxl
ci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4
LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vy
c29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVf
Y29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5Iiwg
bGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNf
dmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlz
ZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5l
Y3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0
CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFt
cykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25l
d19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpk
amFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0
b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVu
dAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9i
dWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxm
LmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAg
ICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVy
biBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xv
bmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNl
bGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9m
ZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0
cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5
IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24u
Y3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vy
c29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBz
ZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
dXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5
cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1
LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdh
cyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3Rv
cmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0
aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBl
eGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246
CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4K
ICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2Ny
ZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3Jf
Y3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVj
dHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1h
bmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1l
KSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGlu
IGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBs
aXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwg
aW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vy
c29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1
cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAg
IHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91
dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90
cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGlu
IGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBz
ZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxp
dGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0g
RGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9u
YWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0g
RmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5l
Y3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFy
YW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRf
bmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMp
CnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4
OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxk
KCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBl
ci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMs
IGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJl
cXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5l
IDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5
c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBs
aW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3Vs
dF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3Fs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVf
c3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1h
a2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBf
X2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2Vi
YWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2
YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29u
bmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24K
ICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGls
cy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjog
Q1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0
YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgog
ICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEx
OSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rp
b24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAy
MDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipj
b25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRo
ZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5w
eSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50
KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9l
bnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxm
Lm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHki
LCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdl
ci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2Vs
Zi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxs
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAg
c2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIu
ZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwg
aW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNv
ciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nv
bm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBl
bnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxp
bmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UK
ICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGph
bmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9u
IHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAg
YnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5l
IDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4g
c2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENS
SVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFi
YXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxw
ZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBk
YXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFs
X3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWls
ZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAog
ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdf
Y29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3Fs
aXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUg
YWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhj
ZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBp
biBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQog
IEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBl
ci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdl
dF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4g
Z2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3
LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQo
KSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUg
MzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2Nh
Y2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwK
ICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9k
ZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhp
dF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVl
LndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0
aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAg
Y29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9w
ZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklU
SUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFz
ZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZv
bGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5Iiwg
bGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZl
bnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3Vy
ZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVp
bGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3Jt
X3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxp
bmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0g
QnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5
IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdl
dF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxm
Ll9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVj
dXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBl
eGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0g
c2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVj
dGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5
OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUs
IHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAg
cmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28u
ZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5l
Y3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19j
b25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIs
IGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25u
ZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVz
ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2Fz
dGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xv
Z19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAg
c2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAog
ICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVs
cGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWls
ZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxz
L21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRh
dHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2Zl
dGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9h
bGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNv
bXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGlu
ZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29y
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAg
ICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVu
c3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMu
cHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRq
X2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiBy
ZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4
Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJS
T1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlm
aWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVS
Uk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRo
ZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIs
IGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5p
bnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93
aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2lu
Zm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2
ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3Vp
L2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRp
b25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJf
dmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dl
dF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90
b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0
ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRf
c3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsn
dGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRv
IHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4
Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoK
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9w
b2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgog
ICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1
ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3Jl
YXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0
cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFu
YWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUp
KCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4g
Z2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAx
NDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5
LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxp
c3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBp
biBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJz
b3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2Uu
cHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vy
c29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNl
bGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0
ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAg
c2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0
aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3Ry
YWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNl
bGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0
ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBE
YXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25h
bEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBG
YWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
c3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpU
aGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcg
ZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9o
b21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5
LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZp
bGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5w
eSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQo
KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hl
bHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVy
LmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2Mywg
aW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUg
MTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlz
ZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnku
cHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9t
b2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0
X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9z
cWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFr
ZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVj
dGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9f
ZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJh
Y2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZh
bHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVw
ZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5h
bF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0
ZXJ1aS5weSIsIGxpbmUgMzYxLCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIudXBkYXRlX2Fu
ZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGli
L2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRlX2FuZF9zdG9y
ZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0YXRlWyd0YXNr
ZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2
ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxp
bmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25u
ZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgog
ICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRp
b25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJh
Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBi
dWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwg
aW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5Iiwg
bGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0
X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBn
ZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcs
IGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgp
LCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAz
MjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIs
IGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2Fj
aGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAog
ICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFz
ZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2Rl
YnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9u
CiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0
X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUu
d2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3Bl
cmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJ
Q0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNl
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIu
dXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2MiwgaW4gdXBkYXRl
X2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxmLmludGVybmFsX3N0
YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAzNjEsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0
b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rh
c2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRh
J10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rp
b24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBj
b25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFs
RXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24g
d2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGluIG1haW4KICAgIGJ1aWxk
aW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
cG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjA5LCBp
biBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlvbiA9IHNlbGYuX2dldF9y
ZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNrZmlsZSkKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBs
aW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUKICAgIGxh
eWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgobG9jYWxm
aWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0
aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9i
dWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxm
LmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAg
ICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVy
biBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xv
bmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNl
bGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9m
ZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0
cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5
IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24u
Y3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vy
c29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBz
ZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
dXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5
cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1
LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdh
cyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMzU3LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIuc3RvcmVfc3RhcnRlZF90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bv
a3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTIwOSwgaW4g
c3RvcmVfc3RhcnRlZF90YXNrCiAgICByZWNpcGVfaW5mb3JtYXRpb24gPSBzZWxmLl9nZXRfcmVj
aXBlX2luZm9ybWF0aW9uX2Zyb21fdGFza2ZpbGUoZXZlbnQudGFza2ZpbGUpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMDMxLCBpbiBfZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlCiAgICBsYXll
cl92ZXJzaW9uX29iaiA9IHNlbGYuX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoKGxvY2FsZmls
ZXBhdGgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxMDAxLCBpbiBfZ2V0X2xheWVyX3ZlcnNpb25fZm9yX3BhdGgK
ICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFr
ZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVp
bGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5i
cmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAg
YnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21v
ZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4g
Z2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25l
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxm
Ll9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0
Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMg
PSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIs
IGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1
cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNv
cgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2Vs
Zi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0
aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBl
LCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwg
aW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBz
ZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBp
biBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihj
b25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwg
aW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5f
cGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3Rl
ciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
CkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwg
aW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9
IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3Nx
bGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4g
PSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJv
cjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMg
dGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1NywgaW4gbWFpbgogICAgYnVpbGRpbmZv
aGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyMDksIGluIHN0
b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0aW9uID0gc2VsZi5fZ2V0X3JlY2lw
ZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRhc2tmaWxlKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZQogICAgbGF5ZXJf
dmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lvbl9mb3JfcGF0aChsb2NhbGZpbGVw
YXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5m
b2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXllcl92ZXJzaW9uX2Zvcl9wYXRoCiAg
ICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2Uv
bGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxk
CiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJi
ZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1
aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2Rl
bHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdl
dGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5f
ZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNo
X2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0g
Y29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0
aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBs
aW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJz
b3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IK
ICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYu
ZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGls
cy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwg
ZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGlu
IHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2Vs
Zi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4g
Y29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29u
bl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGlu
IGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3Bh
cmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIg
ZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpF
UlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4g
bWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50
aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoK
RVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8g
dGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiAKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2Jp
dGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjc0LCBpbiBtYWluCiAgICBidWls
ZGluZm9oZWxwZXIudXBkYXRlX2FuZF9zdG9yZV90YXNrKGV2ZW50KQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTI2
MiwgaW4gdXBkYXRlX2FuZF9zdG9yZV90YXNrCiAgICBhc3NlcnQgaWRlbnRpZmllciBpbiBzZWxm
LmludGVybmFsX3N0YXRlWyd0YXNrZGF0YSddCkFzc2VydGlvbkVycm9yCgpFUlJPUjogQ1JJVElD
QUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6
IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51
cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVf
YW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3Rh
dGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0
byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBz
ZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25u
ZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUz
Lk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1h
aW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRf
b3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9i
amVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGlu
IG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBu
YW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgs
IGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxp
bmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9x
dWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUg
PSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIz
OCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAg
Y3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVn
X2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18K
ICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0
aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAs
IGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24g
PSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9z
cWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25u
ID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0
aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FM
IC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYu
Y29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNv
bm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5f
cGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBn
ZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJh
bXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93
aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5l
IDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkK
ICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxw
ZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1
aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3Jh
cHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAx
NjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBs
aW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1
ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1
ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jl
c3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5w
eSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVf
c3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1
dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9t
ZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNr
ZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxm
Lm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9u
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBp
biBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJh
Y2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlz
ZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYu
Y29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rp
b24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51
dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJP
UjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUg
ZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlv
bgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5l
Y3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGlu
ZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3Qo
Kipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9m
IHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1
aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2
ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1
aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxm
Ll9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2Ji
L3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBz
ZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFu
YWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hf
YWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAog
ICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9k
ZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGls
ZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgz
OCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1
cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFj
a2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJl
X2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIs
IGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhj
X3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFp
c2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jh
c2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25u
ZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVj
dAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJh
bXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9u
ZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykK
ZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
IGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0
aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjog
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3Vy
ZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdl
dF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jh
c2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJh
c2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJl
Y3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5z
dG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZl
bnQKICAgIHNlbGYuX2Vuc3VyZV9idWlsZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0
YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVf
YnVpbGQKICAgIHNlbGYub3JtX3dyYXBwZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2Vs
Zi5icmJlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTYzLCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAog
ICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9tYW5hZ2VyLnB5IiwgbGluZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVyeXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFu
Z28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNs
b25lKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2Fn
ZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBz
ZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBf
ZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3Vs
dHMgPSBjb21waWxlci5leGVjdXRlX3NxbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5w
eSIsIGxpbmUgODM4LCBpbiBleGVjdXRlX3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9u
LmN1cnNvcigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1
cnNvcgogICAgY3Vyc29yID0gc2VsZi5tYWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAg
c2VsZi5lbnN1cmVfY29ubmVjdGlvbigpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L3V0aWxzLnB5IiwgbGluZSA5OCwgaW4gX19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190
eXBlLCBkal9leGNfdmFsdWUsIHRyYWNlYmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwv
bGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4
NSwgaW4gcmVyYWlzZQogICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
YmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAg
ICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5
LCBpbiBjb25uZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlv
bihjb25uX3BhcmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIw
NCwgaW4gZ2V0X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNv
bm5fcGFyYW1zKQpkamFuZ28uZGIudXRpbHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9h
c3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMu
NC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEz
MCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlv
biA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNv
bm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxF
cnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3
YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRp
bmZvaGVscGVyLnN0b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0
b3JlX2xvZ19ldmVudAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywg
aW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxk
X29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIv
YmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVp
bGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9
YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRo
b2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAq
Kmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBu
dW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9f
bGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGlu
ZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5p
dGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRv
cgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3Fs
L2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxm
LmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5l
IDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYu
X2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUt
cGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBf
Y3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFp
c2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5w
eSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0
YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nv
bm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25l
d19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5w
eSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5j
b25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8g
dG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGZpbGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5w
eSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2Vs
Zi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
ZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVj
dGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5P
cGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUg
ZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9u
OgoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWlu
CiAgICBidWlsZGluZm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
MTU4NCwgaW4gc3RvcmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUg
Ii9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIs
IGxpbmUgOTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9j
cmVhdGVfYnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9i
aXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29y
X2NyZWF0ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmpl
Y3RzLmdldChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBt
YW5hZ2VyX21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFt
ZSkoKmFyZ3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBp
biBnZXQKICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDE0NCwgaW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVl
cnkucHkiLCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0g
bGlzdChzZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgs
IGluIGl0ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1
cnNvciA9IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2Nh
bC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFz
ZS5weSIsIGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19j
dXJzb3Ioc2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRo
b24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGlu
ZSAxMzUsIGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9o
b21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2Jh
Y2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAg
c2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAg
ICBzaXgucmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmls
ZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28v
dXRpbHMvc2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhf
dHJhY2ViYWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBp
biBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0g
c2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3Fs
aXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9
IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlv
bmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAt
IEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
YmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNv
bm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25u
ZWN0CiAgICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3Bh
cmFtcykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0
X25ld19jb25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1z
KQpzcWxpdGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUK
ClRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2lu
ZyBleGNlcHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAi
L2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAy
ODksIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9sb2dfZXZlbnQoZXZlbnQpCiAg
RmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVy
LnB5IiwgbGluZSAxNTg0LCBpbiBzdG9yZV9sb2dfZXZlbnQKICAgIHNlbGYuX2Vuc3VyZV9idWls
ZCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZv
aGVscGVyLnB5IiwgbGluZSA5MTMsIGluIF9lbnN1cmVfYnVpbGQKICAgIHNlbGYub3JtX3dyYXBw
ZXIuZ2V0X29yX2NyZWF0ZV9idWlsZF9vYmplY3Qoc2VsZi5icmJlKQogIEZpbGUgIi9ob21lL2Rh
dmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTYz
LCBpbiBnZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdAogICAgYnVpbGRyZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0Lm9iamVjdHMuZ2V0KHBrPWJyKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9tYW5hZ2VyLnB5IiwgbGlu
ZSAxMjcsIGluIG1hbmFnZXJfbWV0aG9kCiAgICByZXR1cm4gZ2V0YXR0cihzZWxmLmdldF9xdWVy
eXNldCgpLCBuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSAzMjgsIGluIGdldAogICAgbnVtID0gbGVuKGNsb25lKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVy
eS5weSIsIGxpbmUgMTQ0LCBpbiBfX2xlbl9fCiAgICBzZWxmLl9mZXRjaF9hbGwoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L21vZGVscy9xdWVyeS5weSIsIGxpbmUgOTY1LCBpbiBfZmV0Y2hfYWxsCiAgICBzZWxmLl9yZXN1
bHRfY2FjaGUgPSBsaXN0KHNlbGYuaXRlcmF0b3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDIzOCwgaW4gaXRlcmF0b3IKICAgIHJlc3VsdHMgPSBjb21waWxlci5leGVjdXRlX3Nx
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3NxbC9jb21waWxlci5weSIsIGxpbmUgODM4LCBpbiBleGVjdXRl
X3NxbAogICAgY3Vyc29yID0gc2VsZi5jb25uZWN0aW9uLmN1cnNvcigpCiAgRmlsZSAiL2hvbWUv
ZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2Vu
ZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxNjIsIGluIGN1cnNvcgogICAgY3Vyc29yID0gc2VsZi5t
YWtlX2RlYnVnX2N1cnNvcihzZWxmLl9jdXJzb3IoKSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDEzNSwgaW4gX2N1cnNvcgogICAgc2VsZi5lbnN1cmVfY29ubmVjdGlvbigp
CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9k
amFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25u
ZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL3V0aWxzLnB5IiwgbGluZSA5OCwgaW4g
X19leGl0X18KICAgIHNpeC5yZXJhaXNlKGRqX2V4Y190eXBlLCBkal9leGNfdmFsdWUsIHRyYWNl
YmFjaykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby91dGlscy9zaXgucHkiLCBsaW5lIDY4NSwgaW4gcmVyYWlzZQogICAgcmFpc2Ug
dmFsdWUud2l0aF90cmFjZWJhY2sodGIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5Iiwg
bGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZpbGUg
Ii9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2Ri
L2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxmLmNv
bm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19jb25uZWN0aW9u
CiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpkamFuZ28uZGIudXRp
bHMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKRVJST1I6
IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRh
dGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9k
Yi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24K
ICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAx
MTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0
aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUg
MjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoq
Y29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWku
cHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX2xvZ19ldmVu
dChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWls
ZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVudAogICAgc2VsZi5f
ZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2Vs
Zi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVl
c3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFn
ZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNl
bGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
cXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2Fs
bCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAg
IHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVy
LmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4Mzgs
IGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJz
b3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tl
bmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9j
b25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4g
ZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQv
LmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBs
aW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192
YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNl
CiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRq
YW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBm
aWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlv
biB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9r
eVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAg
IGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hv
bWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGlu
ZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rhc2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGlu
IHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRhJ10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBD
UklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRh
YmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9z
dCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM2MSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVs
cGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5
Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVw
ZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5h
bF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25FcnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFp
bGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRpb24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxl
ClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8u
bG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNl
L2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVj
dCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QK
ICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1z
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3
X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNx
bGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhl
IGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4
Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9t
ZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDM1Nywg
aW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0b3JlX3N0YXJ0ZWRfdGFzayhldmVudCkKICBG
aWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIu
cHkiLCBsaW5lIDEyMDksIGluIHN0b3JlX3N0YXJ0ZWRfdGFzawogICAgcmVjaXBlX2luZm9ybWF0
aW9uID0gc2VsZi5fZ2V0X3JlY2lwZV9pbmZvcm1hdGlvbl9mcm9tX3Rhc2tmaWxlKGV2ZW50LnRh
c2tmaWxlKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxk
aW5mb2hlbHBlci5weSIsIGxpbmUgMTAzMSwgaW4gX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJv
bV90YXNrZmlsZQogICAgbGF5ZXJfdmVyc2lvbl9vYmogPSBzZWxmLl9nZXRfbGF5ZXJfdmVyc2lv
bl9mb3JfcGF0aChsb2NhbGZpbGVwYXRoKQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTAwMSwgaW4gX2dldF9sYXll
cl92ZXJzaW9uX2Zvcl9wYXRoCiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21l
L2RhdmlkL3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUg
OTEzLCBpbiBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0
ZV9idWlsZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdl
dChwaz1icikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2Vy
X21ldGhvZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFy
Z3MsICoqa3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQK
ICAgIG51bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhv
bjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwg
aW4gX19sZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHki
LCBsaW5lIDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChz
ZWxmLml0ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0
ZXJhdG9yCiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVs
cy9zcWwvY29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9
IHNlbGYuY29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIv
cHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIs
IGxpbmUgMTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Io
c2VsZi5fY3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUs
IGluIF9jdXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2Rh
dmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRz
L2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5j
b25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgu
cmVyYWlzZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hv
bWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMv
c2l4LnB5IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2Vi
YWNrKHRiKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1
cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9j
YWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jh
c2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5n
ZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9i
YXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFi
YXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJy
b3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxl
ZCB0byB0byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxv
Y2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9i
YXNlLnB5IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3Qo
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykK
ICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2Rq
YW5nby9kYi9iYWNrZW5kcy9zcWxpdGUzL2Jhc2UucHkiLCBsaW5lIDIwNCwgaW4gZ2V0X25ld19j
b25uZWN0aW9uCiAgICBjb25uID0gRGF0YWJhc2UuY29ubmVjdCgqKmNvbm5fcGFyYW1zKQpzcWxp
dGUzLk9wZXJhdGlvbmFsRXJyb3I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKClRoZSBh
Ym92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNl
cHRpb246CgpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUv
ZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVpLnB5IiwgbGluZSAzNTcsIGlu
IG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci5zdG9yZV9zdGFydGVkX3Rhc2soZXZlbnQpCiAgRmls
ZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5
IiwgbGluZSAxMjA5LCBpbiBzdG9yZV9zdGFydGVkX3Rhc2sKICAgIHJlY2lwZV9pbmZvcm1hdGlv
biA9IHNlbGYuX2dldF9yZWNpcGVfaW5mb3JtYXRpb25fZnJvbV90YXNrZmlsZShldmVudC50YXNr
ZmlsZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGlu
Zm9oZWxwZXIucHkiLCBsaW5lIDEwMzEsIGluIF9nZXRfcmVjaXBlX2luZm9ybWF0aW9uX2Zyb21f
dGFza2ZpbGUKICAgIGxheWVyX3ZlcnNpb25fb2JqID0gc2VsZi5fZ2V0X2xheWVyX3ZlcnNpb25f
Zm9yX3BhdGgobG9jYWxmaWxlcGF0aCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtl
L2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDEwMDEsIGluIF9nZXRfbGF5ZXJf
dmVyc2lvbl9mb3JfcGF0aAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9k
YXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkx
MywgaW4gX2Vuc3VyZV9idWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1
aWxkX29iamVjdChzZWxmLmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9s
aWIvYmIvdWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVf
YnVpbGRfb2JqZWN0CiAgICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQo
cGs9YnIpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvbW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9t
ZXRob2QKICAgIHJldHVybiBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdz
LCAqKmt3YXJncykKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRl
LXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAg
ICBudW0gPSBsZW4oY2xvbmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24z
LjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGlu
IF9fbGVuX18KICAgIHNlbGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5Iiwg
bGluZSA5NjUsIGluIF9mZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2Vs
Zi5pdGVyYXRvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVy
YXRvcgogICAgcmVzdWx0cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMv
c3FsL2NvbXBpbGVyLnB5IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBz
ZWxmLmNvbm5lY3Rpb24uY3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDE2MiwgaW4gY3Vyc29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNl
bGYuX2N1cnNvcigpKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBp
biBfY3Vyc29yCiAgICBzZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZp
ZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9i
YXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29u
bmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNr
YWdlcy9kamFuZ28vZGIvdXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJl
cmFpc2UoZGpfZXhjX3R5cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21l
L2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3Np
eC5weSIsIGxpbmUgNjg1LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFj
ayh0YikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9y
OiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQg
dG8gdG8gc2F2ZSB0b2FzdGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlIGZpbGUKRVJST1I6IApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvdG9hc3RlcnVp
LnB5IiwgbGluZSAyNzQsIGluIG1haW4KICAgIGJ1aWxkaW5mb2hlbHBlci51cGRhdGVfYW5kX3N0
b3JlX3Rhc2soZXZlbnQpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIv
dWkvYnVpbGRpbmZvaGVscGVyLnB5IiwgbGluZSAxMjYyLCBpbiB1cGRhdGVfYW5kX3N0b3JlX3Rh
c2sKICAgIGFzc2VydCBpZGVudGlmaWVyIGluIHNlbGYuaW50ZXJuYWxfc3RhdGVbJ3Rhc2tkYXRh
J10KQXNzZXJ0aW9uRXJyb3IKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0byBzYXZlIHRv
YXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Ug
ZmlsZQpFUlJPUjogClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICIv
aG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS90b2FzdGVydWkucHkiLCBsaW5lIDI3
NCwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnVwZGF0ZV9hbmRfc3RvcmVfdGFzayhldmVu
dCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91aS9idWlsZGluZm9o
ZWxwZXIucHkiLCBsaW5lIDEyNjIsIGluIHVwZGF0ZV9hbmRfc3RvcmVfdGFzawogICAgYXNzZXJ0
IGlkZW50aWZpZXIgaW4gc2VsZi5pbnRlcm5hbF9zdGF0ZVsndGFza2RhdGEnXQpBc3NlcnRpb25F
cnJvcgoKRVJST1I6IENSSVRJQ0FMIC0gRmFpbGVkIHRvIHRvIHNhdmUgdG9hc3RlciBleGNlcHRp
b24gdG8gdGhlIGRhdGFiYXNlOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCkVSUk9SOiB1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2th
Z2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJl
X2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2Fs
L2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNl
LnB5IiwgbGluZSAxMTksIGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0
X25ld19jb25uZWN0aW9uKGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFz
ZS5weSIsIGxpbmUgMjA0LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFz
ZS5jb25uZWN0KCoqY29ubl9wYXJhbXMpCnNxbGl0ZTMuT3BlcmF0aW9uYWxFcnJvcjogdW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UgZmlsZQoKVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVj
dCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoKClRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9iYi91
aS90b2FzdGVydWkucHkiLCBsaW5lIDI4OSwgaW4gbWFpbgogICAgYnVpbGRpbmZvaGVscGVyLnN0
b3JlX2xvZ19ldmVudChldmVudCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xp
Yi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE1ODQsIGluIHN0b3JlX2xvZ19ldmVu
dAogICAgc2VsZi5fZW5zdXJlX2J1aWxkKCkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRi
YWtlL2xpYi9iYi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDkxMywgaW4gX2Vuc3VyZV9i
dWlsZAogICAgc2VsZi5vcm1fd3JhcHBlci5nZXRfb3JfY3JlYXRlX2J1aWxkX29iamVjdChzZWxm
LmJyYmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvcG9reVIvYml0YmFrZS9saWIvYmIvdWkvYnVpbGRp
bmZvaGVscGVyLnB5IiwgbGluZSAxNjMsIGluIGdldF9vcl9jcmVhdGVfYnVpbGRfb2JqZWN0CiAg
ICBidWlsZHJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qub2JqZWN0cy5nZXQocGs9YnIpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
bW9kZWxzL21hbmFnZXIucHkiLCBsaW5lIDEyNywgaW4gbWFuYWdlcl9tZXRob2QKICAgIHJldHVy
biBnZXRhdHRyKHNlbGYuZ2V0X3F1ZXJ5c2V0KCksIG5hbWUpKCphcmdzLCAqKmt3YXJncykKICBG
aWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5n
by9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDMyOCwgaW4gZ2V0CiAgICBudW0gPSBsZW4oY2xv
bmUpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdl
cy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAxNDQsIGluIF9fbGVuX18KICAgIHNl
bGYuX2ZldGNoX2FsbCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSA5NjUsIGluIF9m
ZXRjaF9hbGwKICAgIHNlbGYuX3Jlc3VsdF9jYWNoZSA9IGxpc3Qoc2VsZi5pdGVyYXRvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMjM4LCBpbiBpdGVyYXRvcgogICAgcmVzdWx0
cyA9IGNvbXBpbGVyLmV4ZWN1dGVfc3FsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvc3FsL2NvbXBpbGVyLnB5
IiwgbGluZSA4MzgsIGluIGV4ZWN1dGVfc3FsCiAgICBjdXJzb3IgPSBzZWxmLmNvbm5lY3Rpb24u
Y3Vyc29yKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBh
Y2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDE2MiwgaW4gY3Vy
c29yCiAgICBjdXJzb3IgPSBzZWxmLm1ha2VfZGVidWdfY3Vyc29yKHNlbGYuX2N1cnNvcigpKQog
IEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGph
bmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTM1LCBpbiBfY3Vyc29yCiAgICBz
ZWxmLmVuc3VyZV9jb25uZWN0aW9uKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5
dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBs
aW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAgIHNlbGYuY29ubmVjdCgpCiAgRmlsZSAi
L2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIv
dXRpbHMucHkiLCBsaW5lIDk4LCBpbiBfX2V4aXRfXwogICAgc2l4LnJlcmFpc2UoZGpfZXhjX3R5
cGUsIGRqX2V4Y192YWx1ZSwgdHJhY2ViYWNrKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9s
aWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL3V0aWxzL3NpeC5weSIsIGxpbmUgNjg1
LCBpbiByZXJhaXNlCiAgICByYWlzZSB2YWx1ZS53aXRoX3RyYWNlYmFjayh0YikKICBGaWxlICIv
aG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9i
YWNrZW5kcy9iYXNlL2Jhc2UucHkiLCBsaW5lIDEzMCwgaW4gZW5zdXJlX2Nvbm5lY3Rpb24KICAg
IHNlbGYuY29ubmVjdCgpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQv
c2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMTks
IGluIGNvbm5lY3QKICAgIHNlbGYuY29ubmVjdGlvbiA9IHNlbGYuZ2V0X25ld19jb25uZWN0aW9u
KGNvbm5fcGFyYW1zKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3Np
dGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL3NxbGl0ZTMvYmFzZS5weSIsIGxpbmUgMjA0
LCBpbiBnZXRfbmV3X2Nvbm5lY3Rpb24KICAgIGNvbm4gPSBEYXRhYmFzZS5jb25uZWN0KCoqY29u
bl9wYXJhbXMpCmRqYW5nby5kYi51dGlscy5PcGVyYXRpb25hbEVycm9yOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSBmaWxlCgpFUlJPUjogQ1JJVElDQUwgLSBGYWlsZWQgdG8gdG8gc2F2ZSB0b2Fz
dGVyIGV4Y2VwdGlvbiB0byB0aGUgZGF0YWJhc2U6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZp
bGUKRVJST1I6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40
L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMw
LCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9k
YXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5k
cy9iYXNlL2Jhc2UucHkiLCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9u
ID0gc2VsZi5nZXRfbmV3X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMv
c3FsaXRlMy9iYXNlLnB5IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29u
biA9IERhdGFiYXNlLmNvbm5lY3QoKipjb25uX3BhcmFtcykKc3FsaXRlMy5PcGVyYXRpb25hbEVy
cm9yOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSBmaWxlCgpUaGUgYWJvdmUgZXhjZXB0aW9uIHdh
cyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgoKVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lSL2JpdGJh
a2UvbGliL2JiL3VpL3RvYXN0ZXJ1aS5weSIsIGxpbmUgMjg5LCBpbiBtYWluCiAgICBidWlsZGlu
Zm9oZWxwZXIuc3RvcmVfbG9nX2V2ZW50KGV2ZW50KQogIEZpbGUgIi9ob21lL2RhdmlkL3Bva3lS
L2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgMTU4NCwgaW4gc3Rv
cmVfbG9nX2V2ZW50CiAgICBzZWxmLl9lbnN1cmVfYnVpbGQoKQogIEZpbGUgIi9ob21lL2Rhdmlk
L3Bva3lSL2JpdGJha2UvbGliL2JiL3VpL2J1aWxkaW5mb2hlbHBlci5weSIsIGxpbmUgOTEzLCBp
biBfZW5zdXJlX2J1aWxkCiAgICBzZWxmLm9ybV93cmFwcGVyLmdldF9vcl9jcmVhdGVfYnVpbGRf
b2JqZWN0KHNlbGYuYnJiZSkKICBGaWxlICIvaG9tZS9kYXZpZC9wb2t5Ui9iaXRiYWtlL2xpYi9i
Yi91aS9idWlsZGluZm9oZWxwZXIucHkiLCBsaW5lIDE2MywgaW4gZ2V0X29yX2NyZWF0ZV9idWls
ZF9vYmplY3QKICAgIGJ1aWxkcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5vYmplY3RzLmdldChwaz1i
cikKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi9tb2RlbHMvbWFuYWdlci5weSIsIGxpbmUgMTI3LCBpbiBtYW5hZ2VyX21ldGhv
ZAogICAgcmV0dXJuIGdldGF0dHIoc2VsZi5nZXRfcXVlcnlzZXQoKSwgbmFtZSkoKmFyZ3MsICoq
a3dhcmdzKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFj
a2FnZXMvZGphbmdvL2RiL21vZGVscy9xdWVyeS5weSIsIGxpbmUgMzI4LCBpbiBnZXQKICAgIG51
bSA9IGxlbihjbG9uZSkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9z
aXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5lIDE0NCwgaW4gX19s
ZW5fXwogICAgc2VsZi5fZmV0Y2hfYWxsKCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9tb2RlbHMvcXVlcnkucHkiLCBsaW5l
IDk2NSwgaW4gX2ZldGNoX2FsbAogICAgc2VsZi5fcmVzdWx0X2NhY2hlID0gbGlzdChzZWxmLml0
ZXJhdG9yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvbW9kZWxzL3F1ZXJ5LnB5IiwgbGluZSAyMzgsIGluIGl0ZXJhdG9y
CiAgICByZXN1bHRzID0gY29tcGlsZXIuZXhlY3V0ZV9zcWwoKQogIEZpbGUgIi9ob21lL2Rhdmlk
Ly5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL21vZGVscy9zcWwv
Y29tcGlsZXIucHkiLCBsaW5lIDgzOCwgaW4gZXhlY3V0ZV9zcWwKICAgIGN1cnNvciA9IHNlbGYu
Y29ubmVjdGlvbi5jdXJzb3IoKQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9u
My40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUg
MTYyLCBpbiBjdXJzb3IKICAgIGN1cnNvciA9IHNlbGYubWFrZV9kZWJ1Z19jdXJzb3Ioc2VsZi5f
Y3Vyc29yKCkpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1w
YWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5IiwgbGluZSAxMzUsIGluIF9j
dXJzb3IKICAgIHNlbGYuZW5zdXJlX2Nvbm5lY3Rpb24oKQogIEZpbGUgIi9ob21lL2RhdmlkLy5s
b2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2Uv
YmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29ubmVjdGlvbgogICAgc2VsZi5jb25uZWN0
KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGliL3B5dGhvbjMuNC9zaXRlLXBhY2thZ2Vz
L2RqYW5nby9kYi91dGlscy5weSIsIGxpbmUgOTgsIGluIF9fZXhpdF9fCiAgICBzaXgucmVyYWlz
ZShkal9leGNfdHlwZSwgZGpfZXhjX3ZhbHVlLCB0cmFjZWJhY2spCiAgRmlsZSAiL2hvbWUvZGF2
aWQvLmxvY2FsL2xpYi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vdXRpbHMvc2l4LnB5
IiwgbGluZSA2ODUsIGluIHJlcmFpc2UKICAgIHJhaXNlIHZhbHVlLndpdGhfdHJhY2ViYWNrKHRi
KQogIEZpbGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMv
ZGphbmdvL2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTMwLCBpbiBlbnN1cmVfY29u
bmVjdGlvbgogICAgc2VsZi5jb25uZWN0KCkKICBGaWxlICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
L3B5dGhvbjMuNC9zaXRlLXBhY2thZ2VzL2RqYW5nby9kYi9iYWNrZW5kcy9iYXNlL2Jhc2UucHki
LCBsaW5lIDExOSwgaW4gY29ubmVjdAogICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5nZXRfbmV3
X2Nvbm5lY3Rpb24oY29ubl9wYXJhbXMpCiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xpYi9w
eXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvc3FsaXRlMy9iYXNlLnB5
IiwgbGluZSAyMDQsIGluIGdldF9uZXdfY29ubmVjdGlvbgogICAgY29ubiA9IERhdGFiYXNlLmNv
bm5lY3QoKipjb25uX3BhcmFtcykKZGphbmdvLmRiLnV0aWxzLk9wZXJhdGlvbmFsRXJyb3I6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlIGZpbGUKCkVSUk9SOiBDUklUSUNBTCAtIEZhaWxlZCB0byB0
byBzYXZlIHRvYXN0ZXIgZXhjZXB0aW9uIHRvIHRoZSBkYXRhYmFzZTogdW5hYmxlIHRvIG9wZW4g
ZGF0YWJhc2UgZmlsZQpFUlJPUjogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UgZmlsZQpUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUvZGF2aWQvLmxvY2FsL2xp
Yi9weXRob24zLjQvc2l0ZS1wYWNrYWdlcy9kamFuZ28vZGIvYmFja2VuZHMvYmFzZS9iYXNlLnB5
IiwgbGluZSAxMzAsIGluIGVuc3VyZV9jb25uZWN0aW9uCiAgICBzZWxmLmNvbm5lY3QoKQogIEZp
bGUgIi9ob21lL2RhdmlkLy5sb2NhbC9saWIvcHl0aG9uMy40L3NpdGUtcGFja2FnZXMvZGphbmdv
L2RiL2JhY2tlbmRzL2Jhc2UvYmFzZS5weSIsIGxpbmUgMTE5LCBpbiBjb25uZWN0CiAgICBzZWxm
LmNvbm5lY3Rpb24gPSBzZWxmLmdldF9uZXdfY29ubmVjdGlvbihjb25uX3BhcmFtcykKICBGaWxl
ICIvaG9tZS9kYXZpZC8ubG9jYWwvbGli
</data>

          </attachment>
      

    </bug>

</bugzilla>